Vla*_*mir 8 spring spring-mvc spring-test spring-boot
我正在使用@TestPropertySource覆盖我的集成测试中的application.yml属性,以用于Spring启动应用程序.
@TestPropertySource(properties = { "repository.file.path=src/test/resources/x" })
Run Code Online (Sandbox Code Playgroud)
我想知道是否有某种方法可以使属性VALUE动态化.像这样的东西:
@TestPropertySource(properties = { "repository.file.path=PropertyValueProvider.class" })
Run Code Online (Sandbox Code Playgroud)
感谢您的反馈.在我的情况下,属性值是系统特定的,应该在测试运行时生成.
Sam*_*nen 12
@TestPropertySource
仅提供用于配置s的声明性机制PropertySource
.Spring参考手册中的文档.
如果您需要添加一个纲领性支持PropertySource
的Environment
,你应该实现一个ApplicationContextInitializer
可通过注册@ContextConfiguration(initializers = ...)
.Spring参考手册中的文档.
问候,
Sam (Spring TestContext Framework的作者)
Amr*_*eja 10
您还可以使用@DynamicPropertySource
Spring Boot 5.2 中的注释来执行此操作。这使您能够以编程方式(动态)设置属性值。
请参阅:https ://github.com/spring-projects/spring-framework/issues/24540
将其添加到您的集成测试类中:
@DynamicPropertySource
static void dynamicProperties(DynamicPropertyRegistry registry) {
registry.add("my.property", () -> {
// some logic to get your property dynamically
});
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3651 次 |
最近记录: |