43.3.3 排除测试配置

如果应用使用组件扫描,比如@SpringBootApplication@ComponentScan,你可能发现为测试类创建的顶级配置类在任何地方都可能偶然被扫描到。

上面看到的那样,为了自定义原始的配置,@TestConfiguration可以用在一个测试的内部类上。当把@TestConfiguration放在顶级类上时,@TestConfiguration表明在src/test/java中的类扫描无效。你可以在需要的地方,明确地导入那个类:

@RunWith(SpringRunner.class)
@SpringBootTest
@Import(MyTestsConfiguration.class)
public class MyTests {

    @Test
    public void exampleTest() {
        ...
    }

}

如果直接使用@ComponentScan(比如不通过@SpringBootApplication),你需要为它注册TypeExcludeFilter,具体参考Javadoc

最后更新于