问题标签 [pact-jvm]

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 投票
1 回答
265 浏览

pact - 按顺序运行 Pact Provider 测试类

我正在使用 pact-jvm 提供程序 spring。我有两个不同的 pact(.json) 文件(order.json 和 irs.json),我需要按顺序运行它们(顺序后跟 irs),但是根据字母顺序选择测试类,irs 运行第一和顺序运行第二。有没有办法调用执行特定的测试类提供者状态或定义测试类执行顺序?

0 投票
1 回答
116 浏览

pact - 在合约发布到在线经纪人之前,如何在本地验证 PACT 测试?

我有一种情况,我可以以 .json 文件的形式访问合同,但它尚未发布,这可能需要一些时间才能发生。我想开始为它编写验证测试,所以正在考虑将这个文件手动粘贴到协议/文件夹下并连接到它而不是在线代理?我想我以前在某个地方看到过类似的事情。这真的可能吗?如果是这样,我可以得到一个样品吗?非常感谢。

0 投票
1 回答
177 浏览

python - 警告:使用 pact-python 验证协议时忽略不支持的匹配规则

我是 Pact 的新手,我正在尝试使用 pact-python 验证提供者方面的协议,但一些匹配规则被忽略了。

警告:忽略不支持的匹配规则 {"$.num_issues"=>{"matchers"=>[{"match"=>"integer"}], "combine"=>"AND"}, "$.error"=> {"matchers"=>[{"match"=>"type"}], "combine"=>"AND"}, "$.response[0].issue_id"=>{"matchers"=>[{" match"=>"type"}], "combine"=>"AND"}, "$.response[0].msg"=>{"matchers"=>[{"match"=>"type"}] , "combine"=>"AND"}, "$.response[0].similar_fix_found"=>{"matchers"=>[{"match"=>"type"}], "combine"=>"AND" }, "$.response[1].issue_id"=>{"matchers"=>[{"match"=>"type"}], "combine"=>"AND"}, "$.response[1].msg"=>{"matchers"=>[{"match"=>"type"}] , "combine"=>"AND"}, "$.response[1].similar_fix_found"=>{"matchers"=>[{"match"=>"type"}], "combine"=>"AND" }} 用于路径 ['body']

Consumer 是基于 Java 的 API,Provider 是基于 Python 的 API。

手动将协议规范版本更改为 2.0.0 也没有按要求工作。

任何人都可以提出一些建议..?

0 投票
1 回答
226 浏览

pact - 我们可以使用 pact-jvm 来验证soap xml吗?

我尝试将 pact-JVM 用于返回肥皂 XML 响应的端点。

对于 XML 响应,它看起来像是在进行字符串比较,我们可以针对 XSD 进行 XML 验证还是可以为 XML 编写匹配器?

还需要建议,使用 pact-JVM 为返回肥皂 XML 的端点编写合同测试用例是个好主意吗?

请分享一个示例。

0 投票
2 回答
756 浏览

junit5 - pact-jvm-provider - JUnit5 Spring - 无法添加授权标头

我有一个 Spring Boot 应用程序,我正在使用 Pact-JVM 编写合同测试。它是一个提供者。

我在 build.gradle 中添加了以下协议依赖项/配置:我正在使用 Java 11、Gradle 6.3

这是我的验证测试:

我期望在 TargetRequestFilter 注释方法中添加的授权标头成为请求的一部分,但请求中缺少这些标头。你能帮我看看我在这里做错了什么吗?

另外,我正在寻找使用最新版本的 pact-jvm 的示例。我在 pact-jvm 提供的示例中找不到。

0 投票
2 回答
334 浏览

json - 如何在协议中验证字符串化的 json

我正在尝试使用异步通信在两个服务之间建立一个协议。

这是我用来生成协议的代码:

生成的契约是

这意味着生产者应该有一个匹配 {"Value" : "Foo"} 的“消息”,像 {"Value" : "Bar" } 这样的任何其他组合都不会成功。有没有办法在字符串化的 json 中添加匹配规则?谢谢!

0 投票
1 回答
40 浏览

groovy - pact-jvm-provider-maven_2.12 是否支持多个标头?

mvn pact:verify当交互中有多个header时,pact-jvm-provider-maven_2.12 version 3.5.25我在provider端运行验证合约时抛出异常

我的互动是

如果我从请求标头中删除 "Content-Type": "application/json",则此错误将消失。这是插件中的错误吗?

0 投票
1 回答
329 浏览

java - 如何更新 JVM PACT 合同中帖子参数的动态日期?

我有一个 POST 请求,它将日期作为我的合同文件中的参数进行 PACT 测试。

但我希望这是动态的,可能有今天或明天的日期,否则它会有一个过期的日期。你能否就如何做到这一点提出建议,如果可能的话,不要让消费者看到它。

这些都是我要求的消费者和提供者样本。

消费者

提供者

非常感谢。

0 投票
1 回答
52 浏览

pact - 使用 Java EE 在 Pact 消费者测试中使用服务

我想在我们的 Java EE 应用程序中实现 Pact 消费者测试。此测试应调用将触发实际 REST 调用的消费者服务方法。

到目前为止,这是 Pact 测试:

有趣的部分是这一行:

当我正在运行消费者单元测试时,注入MyService不起作用,即myService导致null. 此外,我认为有必要告诉服务向 Pact 模拟服务器发送其请求吗?

当然,我可以在测试中触发最终的 REST 请求,但这会忽略服务逻辑。

我想我在这里遗漏了什么?

0 投票
2 回答
50 浏览

pact - 如何为最近的消费者不再使用的接口编写协议测试?

我有一个奇怪的情况,我不知道如何处理它:假设我有一个消费者C和一个提供者P

当我们实施这些服务时,我们没有使用 Pact。所以问题来了:旧版本的 C 需要一个特定的 P 接口,它通过 url 参数提供一些信息。但是最新版本的 C 甚至无法发送这种请求。由于仍然存在旧版本的 C,我们需要确保该接口仍然由 P 提供并正常工作。

我正在使用 Pact-JVM,看起来我必须以某种方式发送此请求,否则测试将失败。我正在努力为这种情况创建一个有意义的测试。我可以创建一个发送请求的假人,但这不会测试任何东西。有人知道在这种情况下该怎么做吗?