此版本仍在开发中,尚未被视为稳定版本。最新的稳定版本请使用 Spring Framework 6.1.13spring-doc.cn

此版本仍在开发中,尚未被视为稳定版本。最新的稳定版本请使用 Spring Framework 6.1.13spring-doc.cn

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

WebApplicationContext

指向其中包含 Spring MVC 和控制器基础结构的 Spring 配置。spring-doc.cn

独立

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

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

基于 的测试加载您的实际 Spring MVC 配置, 从而产生更完整的集成测试。由于 TestContext 框架缓存了 加载的 Spring 配置,它有助于保持测试快速运行,即使您引入了更多 测试套件中的测试。此外,您可以覆盖 您的控制者使用或将重点放在 测试 Web 层。WebApplicationContext@MockitoBean@TestBeanspring-doc.cn

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

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