【发布时间】:2021-03-22 22:56:53
【问题描述】:
我有一个带有以下签名的集成测试:
@SpringBootTest(classes = Example.class)
@ActiveProfiles("test")
public class CoolTest_IntegrationTest extends MyTestFrameworkAbstractClass {
PrismIntegrationFramework 是一个抽象类,其中包含一系列设置方法,可让我团队中的人员更轻松地进行测试。
现在,在 Spring 中,我严重依赖 DynamicPropertySource 来注入来自我的测试容器的动态 IP 地址等。
理想情况下,我想要一个单独的“测试工具”,我可以根据测试类型注入/调用。 IE - 我将有一个 GraphDBHarness,当我编写图形数据库集成测试时会调用它。
@SpringBootTest(classes = GraphClient.class)
@ActiveProfiles("test")
public class CoolTest_IntegrationTest extends MyTestFrameworkAbstractClass extends GraphDBHarness {
我知道上面的内容是无效的,但如果这是 valid 那么我内部会有类似的东西:
public abstract class GremlinTestHarness {
@DynamicPropertySource
static void executeDynamicPropertyInjection(DynamicPropertyRegistry registry) {
registry.add(
GREMLIN_SERVER_KEY, () -> SupportedContainers.gremlinServer.getContainerIpAddress());
registry.add(GREMLIN_SERVER_PORT, () -> SupportedContainers.gremlinServer.getFirstMappedPort());
}
}
所以理论上,如果我有 N 个这样的东西,那么我可以注入我需要的东西,或者随意提供我需要的东西。这在春天有可能吗?
【问题讨论】:
-
既然您已经在使用 Gremlin,是否可以选择使用 Groovy(至少用于测试)?
标签: java spring spring-boot testing polymorphism