Spring Boot 允许我们用 YAML 等价物替换我们的 application.properties
文件。但是,我的测试似乎遇到了障碍。如果我注释我的 TestConfiguration
(一个简单的 Java 配置),它需要一个属性文件。
例如这不起作用: @PropertySource(value = "classpath:application-test.yml")
如果我的 YAML 文件中有这个:
db:
url: jdbc:oracle:thin:@pathToMyDb
username: someUser
password: fakePassword
我将通过以下方式利用这些价值观:
@Value("${db.username}") String username
但是,我最终会遇到这样的错误:
Could not resolve placeholder 'db.username' in string value "${db.username}"
我怎样才能在我的测试中利用 YAML 的优点呢?
原文由 checketts 发布,翻译遵循 CC BY-SA 4.0 许可协议
Spring-boot 有一个帮助器,只需添加
在您的测试类或抽象测试超类的顶部。
编辑:我五年前写了这个答案。它不适用于最新版本的 Spring Boot。这就是我现在所做的(如有必要,请将 Kotlin 翻译成 Java):
被添加到顶部,然后
到上下文。