設定選項

MockMvc 可以透過兩種方式進行設定。

WebApplicationContext

指向包含 Spring MVC 和控制器基礎設施的 Spring 配置。

Standalone(獨立)

直接指向您要測試的控制器並以程式設計方式配置 Spring MVC 基礎設施。

您應該使用哪種設定選項?

基於 WebApplicationContext 的測試會載入您實際的 Spring MVC 配置,從而產生更完整的整合測試。由於 TestContext 框架會快取載入的 Spring 配置,這有助於使測試執行速度快,即使您在測試套件中引入更多使用相同配置的測試也是如此。此外,您可以使用 @MockitoBean@TestBean 覆蓋控制器使用的服務,以便專注於測試 Web 層。

另一方面,獨立測試更接近於單元測試。它一次測試一個控制器。您可以手動將模擬依賴項注入控制器,並且不涉及載入 Spring 配置。此類測試更注重風格,更容易看出正在測試哪個控制器,是否需要任何特定的 Spring MVC 配置才能工作,等等。獨立設定也是編寫臨時測試以驗證特定行為或除錯問題的非常方便的方式。

與大多數“整合測試與單元測試”的爭論一樣,沒有正確或錯誤的答案。但是,使用獨立測試確實意味著需要額外的整合測試來驗證您的 Spring MVC 配置。或者,您可以使用 WebApplicationContext 編寫所有測試,以便它們始終針對您實際的 Spring MVC 配置進行測試。

© . This site is unofficial and not affiliated with VMware.