问题标签 [pact]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
941 浏览

pact - 协议。如何在 URL 中使用自动生成的 ID 测试 REST GET

我想测试一个 REST 服务,它返回由 UUID 标识的给定实体的详细信息,即我的消费者协议有一个请求 GET 的交互,如下所示:

/城市/123e4567-e89b-12d3-a456-426655440000

所以我需要这个特定的记录存在于数据库中,以便协议验证者找到它。在其他项目中,我已经实现了在状态设置中执行 SQL INSERT,但在这种情况下,我更喜欢使用微服务的 JPA 实用程序来访问数据库,因为数据模型非常复杂,使用这些实用程序可以节省我付出了很多努力,并使测试更易于维护。

问题是这些实用程序不允许在您创建新记录时指定标识符(它们分配自动 ID)。因此,在创建实体(在状态设置中)之后,我想告诉协议验证者使用生成的 ID,而不是消费者协议指定的 ID。

据我所知,Pact 匹配技术在这里没有用处,因为我需要微服务来接收这个特定的 ID。验证者有没有办法知道在调用服务时使用的正确 ID?

0 投票
1 回答
288 浏览

node.js - Pact.js - willRespondWith 任意有序数组

我的消费者服务向提供者服务询问所有用户的列表,但提供者以任意有序列表回答(这很好)。消费者端的协议执行看起来不错,但是在提供者站点上执行它时,它说:Expected "user1" but got "user3" at $.items[0].userName例如。

这是交互的片段:

有没有办法忽略退货的顺序?

此外,我的摩卡咖啡测试似乎对比较没有影响。我也尝试订购两个阵列,但没有任何帮助。(交互和摩卡测试)如何连接?

提前谢谢了!

0 投票
1 回答
1617 浏览

spring - Pact Provider @State Test 总是返回 404

我能够为 Spring Boot 项目运行测试,但我总是在 @State 测试中得到 404。

奇怪的是,我可以通过打印出请求信息和 Authorization 标头来判断它到达了正确的端点。我将调试语句放入并验证我可以使用与测试相同的凭据和端点进行调用。但是,测试总是以 404 失败。我的设置中是否缺少某些内容?

0 投票
2 回答
5063 浏览

pact - pact-jvm:如何解决 au.com.dius.pact.consumer.PactMismatchesException

我正在尝试使用 pact-JVM 在我们的两个服务之间生成一个协议。但是当我尝试运行 Java 类时,我得到了这个异常。

1) 我怀疑契约体有问题,对吗?在 PactDslWithProvider 的 JSON 正文中有一个额外的“消息”参数,但在 runTest1() 方法中,我仅等同于列表,当我检查结果时,它们对我来说是相同的。2) 在 runTest1() 方法中提供实际的提供者 URL 是否正确?(提供者已经到位)

下面是我的Java类

}

编辑:

我刚刚发现,如果我注释掉 @Rule 部分,测试就会通过 - 但不会生成协议文件。我应该为此明确指定一个“协议”文件夹吗?

0 投票
2 回答
1026 浏览

pact - 将验证结果发布回协议代理

有没有人有一个如何将验证结果发布回协议经纪人的例子?我在所有阶段都使用 maven 实现(生成/发布和验证)我发现的唯一页面是这个:https ://github.com/pact-foundation/pact_broker/wiki/Provider-verification-results

但我不清楚如何通过 Maven 提供程序插件来实现它

0 投票
1 回答
517 浏览

pact - Pact JVM 也需要安装 scala 和 scala 相关依赖?

执行 PACT JVM 测试用例时,出现以下错误。实际上,在此错误之前,还有另一个 scala 错误,在添加一个 scala 依赖项后,该问题已解决,但出现了这个。

这是我的代码:`public class ContractTest extends ConsumerPactTestMk2 {

`

0 投票
2 回答
4119 浏览

pact - 使用 maven 插件将契约发布到契约代理

我能够生成一个 pact 文件,然后使用 maven 插件对其进行验证。现在,我正在尝试使用协议代理发布协议。

到目前为止我所做的是基于以下链接 - https://github.com/DiUS/pact-jvm/tree/master/pact-jvm-provider-maven#publishing-pact-files-to-a-pact -broker-version-320

我在这里的问题是如何生成 pactBrokerUrl?这是否涉及使用此处所述的协议代理的 dockerized 图像?https://github.com/DiUS/pact_broker-docker 或者我可以只使用 warmuuh 的 Pact Broker Maven 插件吗?

0 投票
0 回答
427 浏览

groovy - Pact Groovy Mock 与正文中的数组

我想对我的模型进行建模,使其主体由n 个元素组成的数组组成。下面的代码只在数组中创建一个元素,而它应该产生三个。

奇怪的是,如果我命名集合,它实际上会生成三个对象:

我哪里错了?这是一个错误吗?

0 投票
2 回答
2406 浏览

pact - 协议文件上传到协议代理失败

将协议文件上传到协议代理时出现“读取协议失败:NullPointerException”的问题。下面是我的堆栈跟踪和 POM 文件详细信息。请帮忙。下面是我的堆栈跟踪

下面是我的 POM.xml

0 投票
0 回答
2269 浏览

arrays - 如何生成一个 Pact 文件,其响应正文与带有 groovy 的字符串数组匹配

我是 Pact 的新手,也是 groovy 的新手。

我想写一个协议把它交给一个提供者。

提供者应使用字符串数组( ["foo", "bar", "foobar"].

这是我的工作状态,它被剥离到必要的部分,但仍然是可执行的:

此测试生成以下协议文件:

Pact 文件希望提供者始终以["foo", "bar", "foobar"]

我想要的是一个通用的字符串数组。

当我尝试以下操作时:

生成的 Pact 文件如下所示:

有matchingRules,这看起来不错。但是根级别上有一个对象,我需要数组作为根。

有没有办法将数组作为根元素,字符串按类型匹配而不是按值匹配?