概述
你可以通过实例化一个控制器、注入依赖并调用其方法来为 Web MVC 编写普通的单元测试。然而,这样的测试不会验证请求映射、数据绑定、消息转换、类型转换、验证,也不会涉及任何支持性的 @InitBinder、@ModelAttribute 或 @ExceptionHandler 方法。
Web MVC Test 框架(也称为 MockMvc)旨在为 Web MVC 控制器提供更完整的测试,而无需运行服务器。它通过调用 MockDispatcherHandler 并传递来自 infra-test 模块的 Mock API 的“mock”实现 来实现这一点,从而在没有运行服务器的情况下复制完整的 Web MVC 请求处理。
MockMvc 是一个服务器端测试框架,让你能够使用轻量级和针对性的测试来验证 Web MVC 应用程序的大部分功能。你可以单独使用它来执行请求并验证响应,也可以通过 WebTestClient API 使用它,其中 MockMvc 作为服务器插入以处理请求。