【发布时间】:2019-06-23 18:32:12
【问题描述】:
我不确定将spring-cloud-contract用于我在标题中提到的目的是否正确,但我想了解它在这种情况下的用例。
我们正在更新集成测试以使用 Spring Cloud Contract。对于新功能,我们按照文档从 YAML/Groovy 创建存根,然后通过 spring-cloud-starter-contract-stub-runner 在消费者端使用它们。
我关心的是已经编写并正在使用的存根。我们不想花时间在 Groovy/YAML 中重写它们以使 Spring Cloud Contract 生成存根,因为我们已经有了存根。 现有测试配置如下:
@SpringBootTest(
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
classes = Application.class
)
@AutoConfigureWireMock(port = 8989, stubs = "classpath*:**/stubs/mappings/**/*.json", files = "classpath*:**/stubs")
class MyClientIT { ... }
在更改此测试以使用 spring-cloud-contract 时,我不知道如何配置 stub-runner:
@SpringBootTest(
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
classes = Application.class
)
@AutoConfigureMockMvc
@AutoConfigureStubRunner(???)
public class MyNewClientIT {...}
在这种情况下是否可以并建议使用 Spring Cloud Contract?如果是这样,我们如何让 stub-runner 看到本地存储的(而不是本地或远程存储为人工制品)的存根?
谢谢...
【问题讨论】:
标签: spring-boot integration-testing spring-boot-test wiremock spring-cloud-contract