Spring WebFlux,单元测试Mono和Flux

发布于 2021-02-02 11:38:21

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

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

我的问题是:

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

非常感谢。

关注者
0
被浏览
1041
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    似乎最佳做法是使用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



推荐阅读
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看