@DynamicPropertySource

@DynamicPropertySource是一个注解,可应用于集成测试类中的方法,这些方法需要注册动态属性,以添加到为集成测试加载的ApplicationContextEnvironment中的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属性,该属性将从服务器延迟检索。

有关详细信息,请参见使用动态属性源进行上下文配置

© . This site is unofficial and not affiliated with VMware.