Spring Cloud Contract:为具有不同或部分不同期望的多个消费者编写合同测试

Spring Cloud Contract : Write Contract Test for multiple consumer with different or partially different expectations

我们正在使用 spring-cloud-contract 进行消费者驱动测试。我有两个消费者(服务)和一个生产者服务。它们都在不同的存储库中。 生产者有一个 api 例如- /get/product/123。每个消费者都有不同的要求。所以,我创建了两个文件夹,并在每个文件夹中放了一个 getProduct.groovy 文件。它看起来像下面这样:

contracts │   ├── consumerA │   │   ├── GetProduct.groovy │   ├── consumerB │   │   ├── GetProduct.groovy

两个 groovy 文件包含不同的正文并在各自的文件夹中生成存根。

为了使 stubsPerConsumer 功能正常工作,您需要确保在消费者集成测试的 StubRunner 设置中将其标志设置为 true,如下所示:

@AutoConfigureStubRunner(ids = "yourids", repositoryRoot = "yourrepository",
stubsMode = StubRunnerProperties.StubsMode.REMOTE,stubsPerConsumer = true)

向@OlgaMaciaszek 添加更多内容,

可以指定 consumerName 必须与 producers /contract 文件夹中的子文件夹名称相同。

可以选择使用 application.yaml 中指定的应用程序名称来跳过提供 consumerName。但这也意味着生产者的合约文件夹中的子文件夹必须与消费者的应用程序名称相同。