@TestConfiguration在顶级课程中的目的是什么?

时间:2016-09-22 14:42:01

标签: java spring spring-boot

Spring Boot 1.4带来many good improvements进行测试。

我不清楚@TestConfiguration的目的。它似乎没有按预期工作。

我认为,如果我在@TestConfiguration下的顶级课程中使用/src/test/java,那么它会被@SpringBootTest测试(see here)选中。但事实似乎并非如此。如果我改为使用@Configuration,那么它就会被正确选中。

我误解了吗?手册错了吗? Spring Boot代码中是否有错误?

2 个答案:

答案 0 :(得分:1)

每当我们使用<context:component-scan base-package="some.package" />@ComponentScan时。它扫描所有。为了防止Spring Boot提供@TestComponent,所以不应该通过扫描来获取它们。

答案 1 :(得分:0)

自从我问了这个问题以来,文档中的措词已得到澄清,现在可以更好地解释这种行为。这是文档https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-testing-spring-boot-applications-excluding-config

  

当放置在顶级类上时,@ TestConfiguration指示不应通过扫描选择src / test / java中的类。然后,您可以在需要的位置显式导入该类