我在我的Spring Boot项目中使用了来自org.openapi-tools的开放式openapi生成器maven插件,并启用了反应式配置。我的一个端点返回List正文响应,该响应自动生成为Mono<响应实体<通量>gt
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>${openapi-generator.version}</version>
<configuration>
...
<configOptions>
<interfaceOnly>true</interfaceOnly>
<reactive>true</reactive>
...
</configOptions>
</configuration>
</plugin>
如何使用WebTestClient在集成测试中测试端点控制器的主体?
如果我尝试这样做,它不会起作用,因为我收到的是通量,而不是预期的dto对象。
webTestApi.get()
.uri("my_uri")
.accept(MediaType.APPLICATION_JSON)
.exchange()
.expectStatus().isOk()
.expectHeader().contentType(MediaType.APPLICATION_JSON)
.expectBody(MyDto.class)
.isEqualTo(myDto);
我终于自己解决了这个问题。
StepVerifier.create(rateApi.get()
.uri("...")
.accept(MediaType.APPLICATION_JSON)
.exchange()
.expectStatus().isOk()
.returnResult(MyDto.class).getResponseBody())
.expectNext(myDto)
.verifyComplete();
我将ResponseBody嵌套到StepVerifier中,就像我们通常测试标准Producer(Flux(一样