2 回答

TA贡献1909条经验 获得超7个赞
当我为 POST 建立合同时,我关心服务器接受有效输入以及服务器对错误输入的响应方式(通常为 400)。没有必要为输入可能无效的所有可能方式签订合同,主要是因为这可能由于无数原因而发生。
因此,从消费者的角度来看,我通常只有一个无效输入的合同,除非我面临一种非常特殊的情况,即服务器可能会根据失败的原因做出不同的响应,并且我关心不同的响应。
对于您的具体情况,请仅针对上述三种情况之一编写合同。

TA贡献1828条经验 获得超4个赞
在您的案例中,功能与契约讨论的核心信息是:那些不愉快路径的排列属于您的提供者代码,因为这就是逻辑所在。
正如@fabricio-lemos 所说,您只需要封装一个 400 错误请求的示例,以证明您的代码可以处理这种情况。
至于 500 错误,这可能是因为您没有为每个测试设置单一的预期交互(通过 Pact DSL)。如果在注册预期交互之前点击 Pact 模拟服务器,则会得到 500。
在伪代码中,您的测试结构可能看起来像
Describe "User API"
BeforeAll
setup Pact mock server
AfterEach
verify and clear interactions
With valid request
setup 201 interaction
run tests
With invalid request
setup 400 interaction
run tests
添加回答
举报