本节总结了 spring-test 中适用于 Spring MVC 应用程序的选项:
Servlet API 模拟:对 Servlet API 合约进行模拟实现,用于单元测试控制器、过滤器和其他 Web 组件。更多细节请参见 Servlet API 模拟对象。
TestContext 框架:支持在 JUnit 和 TestNG 测试中加载 Spring 配置,包括在测试方法中有效缓存加载的配置,并支持用 MockServletContext 加载WebApplicationContext。更多细节见 TestContext 框架。
Spring MVC 测试:一个框架,也被称为 MockMvc,用于通过 DispatcherServlet(即支持注解)测试注解控制器,完整的 Spring MVC 基础设施,但没有 HTTP 服务器。参见 Spring MVC 测试,了解更多细节。
客户端 REST:spring-test 提供了一个 MockRestServiceServer,你可以将其作为一个模拟服务器,用于测试内部使用 RestTemplate 的客户端代码。更多细节请参见 客户端 REST 测试。
WebTestClient:为测试 WebFlux 应用程序而建,但它也可用于端到端的集成测试,通过 HTTP 连接到任何服务器。它是一个非阻塞的、反应式的客户端,很适合测试异步和流式场景。