gpt4 book ai didi

java - Spring Boot 集成测试不读取属性文件

转载 作者:搜寻专家 更新时间:2023-11-01 02:02:30 24 4
gpt4 key购买 nike

我想创建集成测试,其中 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 - Spring Boot 集成测试不读取属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42396982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com