我有一个场景,我的提供者服务提供了3种功能。在消费者端,我有三个不同的类来编写这三种功能的测试。生成协定文件时,它包含具有相同使用者-提供者组合的所有测试。到目前为止还不错。
当涉及到提供者测试时,我希望有一个相同的结构,即3个功能的3个类。但如果我这样做,并且当我从第一类运行测试时,PACT也会尝试根据协定文件搜索其他方法,但由于找不到其他方法而失败。我该如何处理这种情况。
示例:
ConsumerTestClass1
ConsumerTestClass2
ConsumerTestClass3
all定义以下协定
@pact(提供者=提供者,消费者=消费者)
public MessagePact createPactForCareerLevelClassifier(MessagePactBuilder生成器){}
现在假设每个类都有3个测试方法,所以pact文件总共有9个
在提供者方面,我有3个测试类
ProviderTestClass1
providerTestclass2
PROVIDerTestClass3
ProviderTestClass1的实际测试注释为@PactVerifyProvider
现在,当我为ProviderTestClass1运行测试时,PACT抱怨说,它找不到任何与其他6个合同匹配的方法,这些合同实际上在ProviderTestClass2和ProvidertestClass3类中
听起来您没有指定为@PactVerifyProvider
状态,因此它正在运行所有这些状态。
您应该参考这个例子,在这个例子中,您可以清楚地看到状态是通过参数设置的,比如so@PactVerifyProvider('an order confirmation message')
,它只会验证相同描述的Pact交互。