Spring Boot 1.4带来many good improvements进行测试。
我不清楚@TestConfiguration
的目的。它似乎没有按预期工作。
我认为,如果我在@TestConfiguration
下的顶级课程中使用/src/test/java
,那么它会被@SpringBootTest
测试(see here)选中。但事实似乎并非如此。如果我改为使用@Configuration
,那么它就会被正确选中。
我误解了吗?手册错了吗? Spring Boot代码中是否有错误?
答案 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中的类。然后,您可以在需要的位置显式导入该类