设置选项
可以通过以下两种方式之一设置 MockMvc。
WebApplicationContext
-
指向其中包含 Spring MVC 和控制器基础结构的 Spring 配置。
- 独立
-
直接指向要测试的控制器,并以编程方式配置 Spring MVC 基础架构。
您应该使用哪个设置选项?
基于 的测试加载您的实际 Spring MVC 配置,
从而产生更完整的集成测试。由于 TestContext 框架缓存了
加载的 Spring 配置,它有助于保持测试快速运行,即使您引入了更多
测试套件中的测试。此外,您可以覆盖
您的控制者使用或将重点放在
测试 Web 层。WebApplicationContext
@MockitoBean
@TestBean
另一方面,独立测试更接近于单元测试。它测试一个 controller 的 Controller。你可以手动注入控制器的 mock 依赖项,并且 它不涉及加载 Spring 配置。此类测试更侧重于风格 并更容易查看正在测试的控制器,是否有任何特定的 Spring 需要 MVC 配置才能工作,依此类推。独立设置也是一个非常 编写临时测试以验证特定行为或调试问题的便捷方法。
与大多数“集成与单元测试”的争论一样,没有对错之分
答。但是,使用独立测试确实意味着需要额外的集成
测试来验证您的 Spring MVC 配置。或者,你可以编写所有
使用 进行测试,以便它们始终针对您的实际 Spring 进行测试
MVC 配置。WebApplicationContext