当前位置: 首页 > 知识库问答 >
问题:

Spring WebFlux、单元测试Mono和Flux

慕云
2023-03-14

对反应性编程感兴趣,我玩了一点构建反应性RESTful网络服务指南。并希望将其移至原版本并添加一些单元测试。

我试图用普通的Junit/Mockito测试来测试我的处理程序(RouterFunction)。但是,因为它是被动的,所以处理程序返回一个Mono

我的问题是:

鉴于所有示例都使用WebTestClient来测试反应性REST服务,并且(单元)测试ServerSolutions的主体并不容易。单元测试一个RouterFunction是一个好的实践,还是总是使用WebTestClient进行更广泛的测试更好?

谢谢。


共有2个答案

吉嘉珍
2023-03-14

这取决于您到底想要测试什么,对于常规方法,您应该使用StepVerifier,以便使用您测试的输出。不过,路由器功能是唯一的,因为它通常返回一个包含正文中数据的serverResponse,所以在这种情况下,最好使用webClient或webTestClient。

杨高翰
2023-03-14

似乎最好的做法是使用WebTestClient。然而,这个可以在没有运行服务器的情况下使用;

spring测试模块包括一个WebTestClient,可用于在有或无运行服务器的情况下测试WebFlux服务器endpoint。

-- https://docs.spring.io/spring/docs/5.0.0.BUILD-SNAPSHOT/spring-framework-reference/html/web-reactive.html#web-反应性试验

 类似资料:
  • 问题内容: 对反应式编程感兴趣,我玩了《构建反应式RESTful Web服务》指南。并希望转移前途并添加一些单元测试。 我尝试使用普通的Junit / Mockito测试来测试我的处理程序()。但是,由于它是反应性的,因此处理程序将返回。所以我不得不用它来测试状态,但是无法抽出他的身体来测试它。在网络上搜索解决方案时,似乎所有示例都使用。 我的问题是: 鉴于所有示例都用于测试反应性REST服务,并

  • 我正在我的项目中使用spring webflux。我的controller类调用返回Mono或Flux的服务类方法。 我正在尝试为我的服务类编写单元测试。我不确定如何为返回mono/flux的方法编写单元测试。我查看的大多数文章都建议我使用WebClientTest。但重点是,我在这里测试我的服务类。当我通过模拟服务类方法测试我的web层(控制器类)时,我使用了WebclientTest。 对如何

  • 单元测试 单元测试仅依赖于源代码,是测试代码逻辑是否符合预期的最简单方法。 运行所有的单元测试 make test 仅测试指定的package # 单个package make test WHAT=./pkg/api # 多个packages make test WHAT=./pkg/{api,kubelet} 或者,也可以直接用go test go test -v k8s.io/kubernet

  • Android Studio 1.1 添加了单元测试支持,详细请看 Unit testing support。本章的其余部分描述的是 “instrumentation tests”。利用 Instrumentation 测试框架可以构建独立的测试 APK 并运行在真实设备(或模拟器)中进行测试。

  • 英文原文:http://emberjs.com/guides/testing/unit/ 单元测试用于测试代码的一个小片段,确保其功能正常。与集成测试不同,单元测试被限定在一个范围内,并且不需要Ember应用运行。 全局 vs 模块 过去如果没有作为一个全局变量加载整个Ember应用,要对应用进行测试非常困难。通过使用模块(CommonJS,AMD等)来编写应用,可以只加载被测试的部分,而不用将其

  • 单元测试涉及测试软件应用程序的每个单元或单个组件。这是第一级软件测试。单元测试的目的是验证单元组件的性能。 单元是软件系统的单个可测试部分,并在应用程序软件的开发阶段进行测试。 此测试旨在测试隔离代码的正确性。单元组件是应用程序的单独功能或代码。白盒测试方法用于单元测试,通常由开发人员完成。 在测试级别层次结构中,单元测试是在集成和其他剩余测试级别之前完成的第一级测试。它使用模块进行测试,减少了等