设置选项

MockMvc 可以通过以下两种方式之一进行设置。spring-doc.cadn.net.cn

WebApplicationContext

指向带有 Spring MVC 和控制器基础设施的 Spring 配置。spring-doc.cadn.net.cn

独立

直接指向要测试的控制器,并以编程方式配置 Spring MVC 基础设施。spring-doc.cadn.net.cn

您应该使用哪个设置选项?spring-doc.cadn.net.cn

一个WebApplicationContext基于测试加载实际的 Spring MVC 配置, 从而进行更完整的集成测试。由于 TestContext 框架缓存了 loaded Spring 配置,它有助于保持测试快速运行,即使您引入了更多 使用相同的配置在测试套件中进行测试。此外,您可以覆盖 您的控制者使用@MockitoBean@TestBean继续专注于 测试 Web 层。spring-doc.cadn.net.cn

另一方面,独立测试更接近单元测试。它测试一个 控制器。您可以手动注入具有模拟依赖项的控制器,并且 它不涉及加载 Spring 配置。此类测试更侧重于风格 并更容易查看正在测试哪个控制器,是否有任何特定的 Spring 需要 MVC 配置才能工作,依此类推。独立设置也是一个非常 编写临时测试以验证特定行为或调试问题的便捷方法。spring-doc.cadn.net.cn

与大多数“集成与单元测试”的争论一样,没有对错之分 答。但是,使用独立测试确实意味着需要额外的集成 测试以验证您的 Spring MVC 配置。或者,您可以编写所有 使用WebApplicationContext,以便它们始终针对您的实际 Spring 进行测试 MVC 配置。spring-doc.cadn.net.cn