@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注解静态方法。接受一个
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注解静态方法。接受一个
DynamicPropertyRegistry作为参数。- \ [#3] 注册一个动态的
server.port属性,以便从服务器中延迟获取。
有关更多详细信息,请参阅使用动态属性源进行上下文配置。