pas*_*kos 5 unit-testing spring-boot
我有一个配置属性实例,前缀为"assets".
@Configuration
@ConfigurationProperties( prefix = "assets", ignoreUnknownFields = true )
public class AssetsProperties
{
@NotNull
private Resource file;
public Resource getFile()
{
return file;
}
public void setFile( Resource file )
{
this.file = file;
}
}
Run Code Online (Sandbox Code Playgroud)
其默认配置定义如下:
@Configuration
@PropertySource( name = "assetsConfig", value = "classpath:com/package/boot/web/ui/assets/config/default-assets-config.properties" )
@Order( LOW_ORDER )
public class AssetsConfig
{
}
Run Code Online (Sandbox Code Playgroud)
default-assets-config.properties包含:
assets.file=classpath:assets.json
Run Code Online (Sandbox Code Playgroud)
在我的单元测试中,我想使用以下方法覆盖默认值:
@TestPropertySource( locations = "classpath:com/package/boot/web/ui/assets/tests/assets-config.properties" )
Run Code Online (Sandbox Code Playgroud)
assets-config.properties包含
assets.file=classpath:com/package/boot/web/ui/assets/tests/assets.json
Run Code Online (Sandbox Code Playgroud)
不幸的是,这个值永远不会注入AssetsProperties.我做错了什么,我不明白,因为Spring fmk ref doc说
测试属性源的优先级高于从操作系统环境或Java系统属性加载的属性源,以及应用程序通过@PropertySource或以编程方式声明性地添加的属性源.
提前致谢,
Paskos
你在Spring Boot中遇到了限制,这意味着它忽略了使用配置的属性文件@TestPropertySource
.或者,您可以配置一个或多个内联属性:
@TestPropertySource(properties = "assets.file=classpath:com/package/boot/web/ui/assets/tests/assets.json")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5334 次 |
最近记录: |