答案很大程度上取决于集成测试的范围。我将尝试介绍两种主要方法,您可以在Google上等待我们提供更多示例和详细信息。Spring Boot测试文档也是您的朋友。
Spring Boot提供了称为slices的测试实用程序。例如,有一个片段用于测试您的控制器- @WebMvcTest
此测试将加载用于从HTTP和指定的控制器(@WebMvcTest(YourController.class)
)调用应用程序的所有配置。之后,您需要决定如何处理该控制器的依赖项。
您可以:
每个测试最多可以包含一个切片,但是您可以导入任意数量的其他服务,配置,模拟,自动配置等。关键是-选择测试配置。具有新依赖性的新的不相关服务不应破坏现有测试。
另一种方法是@SpringBootTest
注释-方向相反- 默认情况下它会加载所有内容,并且您可以使用排除不需要的内容@MockBean
,@EnableAutoConfiguration(exclude=SomeClass)
等等。
添加新服务时,当然存在打破现有测试的危险。-这应该不会经常发生,因为所有内容都是自动配置的,但是仍然有可能,尤其是在具有更多配置的整体中。