0

我知道 PACT 期望提供者数据需要在我们的控制之下,但是我面临以下情况,我有多个消费者的契约合同,都有一些强制属性,一些是可选属性,但是业务逻辑抑制了所有属性具有空值,但根据合同,我仍然需要该值作为空值,我该怎么办?编辑 1:即让我们在下面说我的合同看起来

consumer sent request with below params:
{ "method": "GET", "path" : "/pathOfApi", "headers":{ "accept": "json" } }

提供者响应以下数据:

{ "Status": 200,
"body" :[
{"country" : "string",
"countryId" :"string",
"postalcode": "string",
"addressLine1" :"string",
"addressLine2" : "string"
"customerName" : "string",
"customerId" : "string"
}
]

现在并非所有客户都有地址第 2 行,如果 addressLine 2 为空,则现在在生产中它不会出现在 api 的输出中,但是对于我们的合同字段应该出现空

4

1 回答 1

0

如果您的提供者没有返回一个字段,但消费者期望null,那么消费者需要改变他们的期望(因为它不正确)或者提供者应该更新其实现以返回null值。

仅仅因为消费者要求某事并不意味着您需要这样做!

如果在某些情况下该字段存在而其他情况下不存在,则您需要编写两个测试来涵盖每种情况。我建议用所有字段覆盖一个案例,另一个用最少的字段集(参见https://docs.pact.io/faq/#why-is-there-no-support-for-specifying-可选属性)。

于 2021-09-22T13:08:24.870 回答