@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 ...
}
1 | 使用 @DynamicPropertySource 註解一個 static 方法。 |
2 | 接受一個 DynamicPropertyRegistry 作為引數。 |
3 | 註冊一個動態的 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 ...
}
1 | 使用 @DynamicPropertySource 註解一個 static 方法。 |
2 | 接受一個 DynamicPropertyRegistry 作為引數。 |
3 | 註冊一個動態的 server.port 屬性,該屬性將從伺服器延遲檢索。 |
有關更多詳細資訊,請參閱使用動態 Property Sources 配置上下文。