gpt4 book ai didi

java - 如何以及是否使用 Pact 测试句法(错误请求)验证?

转载 作者:行者123 更新时间:2023-11-30 06:44:01 25 4
gpt4 key购买 nike

我开始使用 Pact(在 Java 上)进行契约测试。

我读过 Contract Tests vs Functional Tests关于 Pact 最佳实践,但我有点困惑。

示例:创建资源 (POST) 的简单 REST 端点,成功返回 201 Created 和语法验证错误 400 Bad Request。请求正文类似于:

{
"firstname" : "Foo",
"lastname" : "Bar"
}

firstnamelastname 都不能为空。据我所知,我可以在这里写 3 个场景,其中提供者应该返回 400 Bad Request:

  1. firstname空白lastname 不是空白
  2. firstname 不为空,lastnameblank
  3. firstnamelastname 都是空白

问题是,如果只定义了“快乐路径协议(protocol)”,模拟服务器将返回 500 内部服务器错误,如果我想让它返回 400 错误请求,我必须编写所有可能的协议(protocol)。此外,如果我添加另一个具有相同验证规则的字段,协议(protocol)数量就会激增。

  • 首先,我应该在消费者身上测试该场景吗?
  • 如果是,是否存在使用 Pact DSL 实现它的巧妙方法?

谢谢。

最佳答案

当我为 POST 建立契约(Contract)时,我关心服务器接受有效输入以及服务器响应错误的方式(通常是 400)输入。没有必要为输入可能无效的所有可能方式制定契约(Contract),主要是因为无数种原因可能会导致这种情况发生。

因此,从消费者的角度来看,我通常只会对无效输入进行一次交互,除非我面临一种非常特殊的情况,即服务器可能会根据失败的原因做出不同的响应,而我关心的是不同的回复。

针对您的具体情况,只为上述三种情况中的一种编写契约(Contract)。

关于java - 如何以及是否使用 Pact 测试句法(错误请求)验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51386591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com