概述
您可以通过实例化一个控制器、注入依赖项并调用其方法来为 Spring MVC 编写简单的单元测试。然而,这样的测试并不会验证请求映射、数据绑定、消息转换、类型转换或验证,也不涉及任何支持的 @InitBinder
、@ModelAttribute
或 @ExceptionHandler
方法。
MockMvc
旨在为 Spring MVC 控制器提供更完整的测试支持,而无需运行服务器。它通过调用 DispatcherServlet
并传递来自 spring-test
模块的 Servlet API 的“模拟”实现 来实现这一点,这些实现可以在没有运行服务器的情况下复制完整的 Spring MVC 请求处理。
MockMvc 是一个服务器端测试框架,它允许你通过轻量级和有针对性的测试来验证 Spring MVC 应用的大部分功能。你可以单独使用它来执行请求并使用 Hamcrest 验证响应,或者通过提供流畅 API 的 MockMvcTester
使用 AssertJ。你也可以通过 WebTestClient API 使用它,将 MockMvc 插入作为服务器来处理请求。