總覽

您可以撰寫簡單的單元測試來測試 Spring MVC,方法是實例化控制器、注入其依賴項,並呼叫其方法。然而,這類測試無法驗證請求映射、資料繫結、訊息轉換、類型轉換或驗證,也不涉及任何支援的 @InitBinder@ModelAttribute@ExceptionHandler 方法。

MockMvc 旨在為 Spring MVC 控制器提供更完整的測試支援,而無需執行伺服器。它透過調用 DispatcherServlet 並從 spring-test 模組傳遞 Servlet API 的「mock」實作 來實現這一點,該模組複製了完整的 Spring MVC 請求處理,而無需執行伺服器。

MockMvc 是一個伺服器端測試框架,可讓您使用輕量級且有針對性的測試來驗證 Spring MVC 應用程式的大部分功能。您可以單獨使用它來執行請求並使用 Hamcrest 或透過 MockMvcTester (提供使用 AssertJ 的流暢 API) 來驗證回應。您也可以透過 WebTestClient API 使用它,並將 MockMvc 作為伺服器插入以處理請求。