我究竟做错了什么?我正在使用这个运行并找到我的小独立应用程序src/main/resources/config/application.yml。无法从JUnit使用相同的配置,请参见下文:
src/main/resources/config/application.yml
@Configuration @ComponentScan @EnableConfigurationProperties public class TestApplication { public static void main(String[] args) { SpringApplication.run(TestApplication.class); } } @Component @ConfigurationProperties public class Bean{ ... }
以下内容无效,其中的相同属性application.yml未加载,Bean仅具有null值:
application.yml
Bean
null
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = TestApplication.class) public class SomeTestClass { ... }
尝试这个:
@RunWith(SpringJUnit4ClassRunner.class) @SpringApplicationConfiguration(classes = TestApplication.class, initializers = ConfigFileApplicationContextInitializer.class) public class SomeTestClass { ... }
编辑 :
对于Spring Boot版本1.5+,SpringApplicationConfiguration已删除它以支持SpringBootTest或直接使用SpringBootContextLoader。
SpringApplicationConfiguration
SpringBootTest
SpringBootContextLoader
您仍然可以将initializers参数与ContextConfiguration注释一起使用。
initializers
ContextConfiguration