@Value注释在应用中解析,但不在单元测试

时间:2016-05-27 23:47:01

标签: spring junit junit4

我有一个带有@Value注释的Spring webapp,它由PropertySourcesPlaceholderConfigurer填充。注释在我的webapp中正确解析。

但是,当我使用SpringJunit4ClassRunner运行单元测试并使用特定的bean配置文件进行单元测试时,无论是否从Eclipse运行测试,我都会收到“无法解析字符串$ {xxx}中的占位符xxx”异常来自Maven。

有趣的是,PropertySourcesPlcHlCfg。初始化(正确且只有一次)并找到属性文件,就像我重命名它一样,我得到一个FileNotFoundException。

这里可能出现什么问题?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以尝试使用(如果是Spring 4)

@TestPropertySource(value="classpath:/test.properties")

用于加载Junit Test的特定文件。

或者,您也可以尝试在配置中创建bean PropertySourcesPlaceholderConfigurer

@Bean
public static PropertySourcesPlaceholderConfigurer propertiesResolver() {
    return new PropertySourcesPlaceholderConfigurer();
}