【发布时间】:2019-02-19 11:50:37
【问题描述】:
我遇到了TestPropertyValues,这里的 Spring Boot 文档中简要提到了这一点:https://github.com/spring-projects/spring-boot/blob/2.1.x/spring-boot-project/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc#testpropertyvalues
这里的迁移指南中也提到了这一点:https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Migration-Guide#environmenttestutils
两个示例都显示了一个 environment 变量来应用属性,但我找不到其他文档。
在我的测试中,属性设置来不及影响 Spring Bean 的属性注入(通过@Value)。换句话说,我有一个这样的构造函数:
public PhoneNumberAuthorizer(@Value("${KNOWN_PHONE_NUMBER}") String knownRawPhoneNumber) {
this.knownRawPhoneNumber = knownRawPhoneNumber;
}
由于在测试代码有机会运行之前调用了上述构造函数,因此在构造函数中使用之前,无法通过测试中的TestPropertyValues更改属性。
我知道我可以为@SpringBootTest 使用properties 参数,它会在创建bean 之前更新环境,那么TestPropertyValues 的适当用法是什么?
【问题讨论】:
标签: java spring-boot spring-boot-test