概述

您可以为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