java – Spring Boot集成测试不读取属性文件
作者:互联网
我想创建集成测试,其中Spring Boot将使用@Value注释从.properties文件中读取值.
但每次我运行测试时,我的断言都会失败,因为Spring无法读取值:
org.junit.ComparisonFailure:
Expected :works!
Actual :${test}
我的测试:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {WebTests.ConfigurationClass.class, WebTests.ClassToTest.class})
public class WebTests {
@Configuration
@ActiveProfiles("test")
static class ConfigurationClass {}
@Component
static class ClassToTest{
@Value("${test}")
private String test;
}
@Autowired
private ClassToTest config;
@Test
public void testTransferService() {
Assert.assertEquals(config.test, "works!");
}
}
src / main / resource包下的application-test.properties包含:
test=works!
这种行为的原因是什么?我该如何解决?
任何帮助高度赞赏.
解决方法:
您应该使用@PropertySource或@TestPropertySource加载application-test.properties
@RunWith(SpringJUnit4ClassRunner.class)
@TestPropertySource(locations="classpath:application-test.properties")
@ContextConfiguration(classes = {WebTests.ConfigurationClass.class, WebTests.ClassToTest.class})
public class WebTests {
}
有关更多信息:请查看此Override default Spring-Boot application.properties settings in Junit Test
标签:java,junit4,spring,spring-boot-2,properties-file 来源: https://codeday.me/bug/20190527/1164593.html