小编典典

Spring WebFlux,单元测试Mono和Flux

spring-boot

对反应式编程感兴趣,我玩了《构建反应式RESTful Web服务》指南。并希望转移前途并添加一些单元测试。

我尝试RouterFunction使用普通的Junit /
Mockito测试来测试我的处理程序()。但是,由于它是反应性的,因此处理程序将返回Mono<ServerResponse>。所以我不得不用block()它来测试ServerResponse状态,但是无法抽出他的身体来测试它。在网络上搜索解决方案时,似乎所有示例都使用WebTestClient

我的问题是:

鉴于所有示例都WebTestClient用于测试反应性REST服务,并且(单元)测试a的主体并不容易ServerResponse。对a进行单元测试是一种好习惯RouterFunction还是始终对它进行更广泛的测试更好WebTestClient

非常感谢。


阅读 1542

收藏
2020-05-30

共1个答案

小编典典

似乎最佳做法是使用WebTestClient。但是,可以在没有运行服务器的情况下使用此服务器。

spring-test模块包括一个WebTestClient可用于在 有或没有运行服务器的情况下 测试WebFlux服务器端点的功能。

- https://docs.spring.io/spring/docs/5.0.0.BUILD-SNAPSHOT/spring-
framework-reference/html/web-reactive.html#web-reactive-
tests

2020-05-30