如何在提供者端的类中为同一个使用者

时间:2017-01-25 03:49:01

标签: pact pact-java

我有一个场景,我的提供商服务提供3个功能。在消费者端,我有3个不同的类来为这3个功能编写测试。生成pact文件时,它包含具有相同使用者 - 提供者组合的所有测试。到现在为止还挺好。

当涉及提供者测试时,我希望具有3个功能的3个类的相同结构。但是如果我这样做,当我从第一类运行测试时,PACT也会尝试按照pact文件搜索其他方法,并且无法找到其他方法的cos。我该如何处理这种情况。

示例:
ConsumerTestClass1
ConsumerTestClass2
ConsumerTestClass3

全部定义下面的协议
@Pact(provider = PROVIDER,consumer = CONSUMER)
public MessagePact createPactForCareerLevelClassifier(MessagePactBuilder builder){}

现在让我们说每个类都有3个测试方法,所以pact文件中都有9个

在提供者方面,我有3个测试类 ProvdiderTestClass1
ProvdiderTestClass2
ProvdiderTestClass3

ProviderTestClass1的实际测试使用 @PactVerifyProvider 进行注释 现在当我为ProviderTestClass1运行测试时,PACT抱怨说它无法找到任何匹配6个其他合同的方法,这些合同实际上在ProvdiderTestClass2和ProvdiderTestClass3类中

1 个答案:

答案 0 :(得分:0)

听起来你没有指定@PactVerifyProvider状态,因此它正在运行所有状态。

您应该参考this example,在那里您可以清楚地看到状态是通过像@PactVerifyProvider('an order confirmation message')这样的参数设置的,这样只会验证相同描述的Pact交互。