对于最新稳定版本,请使用 Spring Framework 7.0.6spring-doc.cadn.net.cn

概述

你可以通过实例化一个控制器、注入其依赖项并调用其方法,来编写针对 Spring MVC 的普通单元测试。然而,这类测试无法验证请求映射、数据绑定、消息转换、类型转换或验证,也不会涉及任何辅助性的 @InitBinder@ModelAttribute@ExceptionHandler 方法。spring-doc.cadn.net.cn

MockMvc 旨在在无需启动服务器的情况下,为 Spring MVC 控制器提供更完整的测试支持。 它通过调用 DispatcherServlet 并传入 来自 spring-test 模块的 Servlet API 的“模拟”实现, 从而在不运行服务器的情况下复现完整的 Spring MVC 请求处理流程。spring-doc.cadn.net.cn

MockMvc 是一个服务器端测试框架,允许你通过轻量级且有针对性的测试来验证 Spring MVC 应用程序的大部分功能。你可以单独使用它来发起请求,并使用 Hamcrest 或通过 MockMvcTester(它提供了基于 AssertJ 的流畅 API)来验证响应。你也可以通过 WebTestClient API 使用它,将 MockMvc 作为处理请求的服务器进行集成。spring-doc.cadn.net.cn