概覽
你可以透過例項化一個控制器,注入其依賴,並呼叫其方法來為 Spring MVC 編寫普通的單元測試。然而,此類測試並不會驗證請求對映、資料繫結、訊息轉換、型別轉換或驗證,也不涉及任何支援性的 @InitBinder
、@ModelAttribute
或 @ExceptionHandler
方法。
MockMvc
旨在為 Spring MVC 控制器提供更完整的測試支援,而無需執行伺服器。它透過呼叫 DispatcherServlet
並傳遞 Servlet API 的“模擬”實現從 spring-test
模組中來實現,這可以在不執行伺服器的情況下複製完整的 Spring MVC 請求處理過程。
MockMvc 是一個伺服器端測試框架,允許您使用輕量級且有針對性的測試來驗證 Spring MVC 應用程式的大部分功能。您可以單獨使用它來執行請求並使用 Hamcrest 驗證響應,或者透過提供基於 AssertJ 的流式 API 的 MockMvcTester
來使用它。您還可以透過 WebTestClient API 使用它,將 MockMvc 作為伺服器接入以處理請求。