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

时间:2018-11-15 17:55:56

标签: java spring spring-boot spring-cloud spring-cloud-contract

-->

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

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

两个groovy文件的主体都不同,并在各自的文件夹中生成存根。

2 个答案:

答案 0 :(得分:2)

为使stubsPerConsumer功能起作用,您需要确保在消费者集成测试的StubRunner设置中将其标志设置为true,例如:

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

答案 1 :(得分:2)

向@OlgaMaciaszek添加更多,

可以指定<p>name 1</p> <p>name 2</p> <p>name 3</p> (function($){ $('p').each( function(){ $(this).css( 'color', 'red'); }); })(jQuery) ,该名称必须与生产者consumerName文件夹中的子文件夹名称相同。

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

相关问题
最新问题