针对不同的测试方法使用不同的 Spring 测试上下文配置
2022-09-04 19:35:09
我们有一个基于Spring的JUnit测试类,它利用了内部测试上下文配置类
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = ServiceTest.Config.class)
public class ServiceTest {
@Test
public void someTest() {
...
@Configuration
@PropertySource(value = { "classpath:application.properties" })
@ComponentScan({ "..." })
public static class Config {
...
最近向 Service 类引入了新功能,为此,应将相关测试添加到 ServiceTest 中。但是,这些还需要创建不同的测试上下文配置类(现有Config类的内部结构相当复杂,如果可能的话,将其更改为服务于新旧测试似乎非常困难)
有没有办法实现一个测试类中的某些测试方法将使用一个配置类,而其他方法将使用另一个配置类? 似乎只适用于类级别,因此解决方案可能是为新测试创建另一个测试类,该测试将使用自己的上下文配置类;但这意味着通过两个不同的测试类涵盖相同的服务类@ContextConfiguration