@DynamicPropertySource
@DynamicPropertySource
@DynamicPropertySource
是一个注解,可以应用于集成测试类中的方法,这些方法需要注册 动态 属性,以便将其添加到为集成测试加载的 ApplicationContext
的 Environment
中的 PropertySources
集合中。当你不知道属性的值时,动态属性非常有用——例如,如果属性由外部资源管理,比如由 Testcontainers 项目管理的容器。
以下示例演示如何注册一个动态属性:
- Java
- Kotlin
@ContextConfiguration
class MyIntegrationTests {
static MyExternalServer server = // ...
@DynamicPropertySource 1
static void dynamicProperties(DynamicPropertyRegistry registry) { 2
registry.add("server.port", server::getPort); 3
}
// tests ...
}
用
@DynamicPropertySource
注解一个static
方法。接受一个
DynamicPropertyRegistry
作为参数。注册一个动态的
server.port
属性,以便从服务器懒加载获取。
@ContextConfiguration
class MyIntegrationTests {
companion object {
@JvmStatic
val server: MyExternalServer = // ...
@DynamicPropertySource 1
@JvmStatic
fun dynamicProperties(registry: DynamicPropertyRegistry) { 2
registry.add("server.port", server::getPort) 3
}
}
// tests ...
}
用
@DynamicPropertySource
注解一个static
方法。接受一个
DynamicPropertyRegistry
作为参数。注册一个动态的
server.port
属性,以便从服务器懒加载获取。
请参阅 上下文配置与动态属性源 以获取更多详细信息。