Spring PropertySource未在测试中加载

时间:2017-11-26 22:44:00

标签: java spring spring-boot spring-test

我有一个spring @Component类,用于从类路径中的.properties文件加载属性。该课程如下:

@Component
@ConfigurationProperties("mail")
@PropertySource("classpath:config.properties")
public class MailProperties {
    private String user;

    public void setUser(String user) {
        this.user = user;
    }

    public String getUser() {
        return this.user;
    }

}

我正在对上面的类进行单元测试,但在单元测试中,user属性始终为null,这意味着它不是从.properties文件加载的。我尝试在test / resources下添加相同的属性文件,但没有任何运气。

我在这里做错了吗?测试类如下所示:

@RunWith(SpringJUnit4ClassRunner.class)
@TestPropertySource("classpath:config.properties")
@ContextConfiguration(loader = AnnotationConfigContextLoader.class, classes = {MailProperties.class})
public class MailPropertiesTest {

    @Autowired
    private MailProperties mailProperties;

    @Test
    public void testUser() {
        assertNotNull( this.mailProperties.getUser());
    }
}

1 个答案:

答案 0 :(得分:0)

您缺少用户字段上的@Value注释。

@Value("${key.from.properties.file}")
private String user;

您也可以将注释附加到设置器。