【发布时间】:2019-01-20 15:51:44
【问题描述】:
对响应式编程很感兴趣,我玩过Building a Reactive RESTful Web Service 指南。并想向前推进并添加一些单元测试。
我尝试使用普通的 Junit/Mockito 测试来测试我的处理程序 (RouterFunction)。但是,因为它是反应式的,所以处理程序返回一个Mono<ServerResponse>。所以我不得不block()它来测试ServerResponse的状态,但无法提取他的身体来测试它。在网上搜索解决方案时,似乎所有示例都使用WebTestClient。
我的问题是:
鉴于所有示例都使用 WebTestClient 来测试反应式 REST 服务,并且(单元)测试 ServerResponse 的主体并不容易。对RouterFunction 进行单元测试是一种好习惯,还是总是对WebTestClient 进行更广泛的测试更好?
非常感谢。
【问题讨论】:
-
有趣的问题。恐怕它最终可能主要是基于意见的,但由于我对 WebFlux 不是特别熟悉,这里可能有一个有用的最佳实践。
-
谢谢。当然,它将基于意见,但网络倾向于说除了使用
WebTestClient测试它之外没有其他干净的方法。所以要么我以错误的方式搜索,要么没有其他方式。 -
您阅读过 Project Reactor 参考的the testing section 吗?
-
是的。我的问题是(见答案)更多关于测试
ServerResponse的主体
标签: java unit-testing spring-boot reactive-programming spring-webflux