MockMvc和WebTestClient有什么区别?

dev*_*vsh 7 spring mockmvc

当我尝试在Spring 4.x上测试时,我使用了MockMvc Web客户端,但我正在阅读并尝试Spring 5.x的新功能.

我认为,WebTestClient和MockMvc是相同或非常相似的.

MockMvc和WebTestClient有什么区别?

我在等待你的回答.谢谢

nob*_*bar 5

相似点

  • 两者都提供了用于测试Web服务的流利风格的语法。
  • 两者都可以或确实在绕过HTTP使用的模拟环境中运行。

主要差异

  • WebTestClient也可以用于使用HTTP测试真实的Web服务。
    • 指定@SpringBootTest而不是@WebFluxText
  • WebTestClient仅在您将Netty用于本地服务器时才有效。
    • 感觉就像是对测试环境的人为限制。
    • 这很可能是由于基础的非阻塞性WebClient
  • WebTestClient可以测试流响应

资源资源

  • `spring-boot-starter-web` 与 `WebClient` 和 `WebTestClient` 兼容。事实上,我认为现在建议这样做,因为目前不鼓励使用“RestTemplate”。 (5认同)
  • 据我所知,不支持在同一应用程序中使用 mvc 和 webflux。 (2认同)
  • 我也知道,你也可以将 webtestclient 与 tomcat 一起使用 (2认同)