Ton*_*lla 6 spring spring-test spring-boot
我想知道是否@TestPropertySource会尊重 SpEL 或者至少允许一个属性替换另一个属性的值。
这是一个与动态属性 @TestPropertySource类似的问题
假设我所指的属性存在于属性中的文件之一中locations......
例如,如果我想做类似的事情:
@TestPropertySource(
locations = {"classpath:application.properties", "classpath:database.properties"},
properties = {"newPortNum = #{1 + Integer.parseInt(${myapp.web.server.port.ssl})}})
Run Code Online (Sandbox Code Playgroud)
或这个:
@TestPropertySource(
locations = {"classpath:application.properties", "classpath:database.properties"},
properties = {"outputFile = ${outputDir}/foo.txt"})
Run Code Online (Sandbox Code Playgroud)
我需要实施 aTestExecutionListener或@BootstrapWith来完成此任务吗?
直接来自 Javadoc @TestPropertySource.locations():
路径中的属性占位符(即
${...})将根据Environment.
...这意味着:反对任何已经添加到Environment.
另一方面,SpEL 表达式不受支持。
如果您需要以编程方式支持将 a 添加PropertySource到Environment,您应该实现一个ApplicationContextInitializer可以通过 注册的@ContextConfiguration(initializers = ...)。
问候,
Sam (Spring TestContext 框架的作者)
| 归档时间: |
|
| 查看次数: |
986 次 |
| 最近记录: |