spring cloud contract测试 - 输入消息验证

时间:2017-08-31 04:35:07

标签: spring spring-cloud spring-cloud-contract

如果生产者更改输入消息正文,我们是否有办法从消费者方测试输入消息合同。

我们只使用stubTrigger.trigger(“label”);从消费者方面进行测试,但消费者如何知道生产者是否更改了输入消息合同?消费者测试案例似乎总是为我传递甚至生产者更改输入合同。

1 个答案:

答案 0 :(得分:0)

所以我知道你有一些同步的情况,你收到一条消息,然后再发送一个消息给其他应用程序?或者反过来说,你发送一条消息,然后期望再找回另一条消息。

你有2个选择。一种是阅读文档并使用这种方法(http://cloud.spring.io/spring-cloud-static/Dalston.SR3/#_scenario_2_output_triggered_by_input)。在这里,您可以定义一个特定输入消息将允许触发输出的合约。在您的情况下,如果您的输出消息是错误的,那么您将不会收到另一个。另一种方法实际上是将其拆分为2个合同(https://github.com/spring-cloud/spring-cloud-contract/issues/321)。假设您的应用程序被称为A而另一个被称为B.第一个合同将是A向B发送消息(A是生产者),第二个是B向A发送消息(B是生产者)。因此,如果A想要更改输入以将消息发送到B,则合同测试将失败。