当前位置: 首页 > 知识库问答 >
问题:

用pact-jvm生成的契约可以用pact-net或Pact-Ruby验证吗?

邴姚石
2023-03-14

使用pact-jvm-consumer-junit主体可以具有

 DslPart etaResults = new PactDslJsonBody()
                .integerType("x",1)
                .asBody();

从而生成合同文件:

"$.body.x": {
   "match": "integer"
}

使用pact-net或pact-provider-verifier验证合同显示以下消息:warn:忽略路径$['body']['x']的不受支持的匹配规则{“match”=>“integer”}

当前的pact-provider-verifier是否能够读取包含“match”:“integer”的契约。pact-provider-verifier真正期望的是什么版本的pact规范?

pact-jvm设置为pactspecvershtml" target="_blank">ion.v2是否应该输出“match”:“integer”或“match”:“type”?

共有1个答案

辛盛
2023-03-14

当然,它看起来像是被序列化为v3而不是v2,正如您所说的,integer不是v2的有效类型。

如果您能提供您的代码的要点(或者更好的是,一个工作示例),我们可能就能了解它的底部。

然而,简而言之,v2序列化的pacts应该与支持v2的其他语言兼容。

 类似资料:
  • 在你的Pact之旅上,一定有些时候会生成许多Pact文件供提供者进行验证,而且要确保提供者访问的总是最新版本的契约文件。这当然很棒,但是很快就会繁琐到难于管理。 Pact Broker 这时就该Pact Broker登场了。它能够让你在项目之间共享契约,还可以让这些契约为人所用。它是正式使用Pact开发时的推荐方式,具有如下特性: 自动生成接口文档 动态生成调用关系网络图 对Pact打标签的能力

  • 我在pact-jvm-consumer中的closeArray有问题。 给定这样的Json,如何构造“dslPart imeiResults=new PactDslJsonBody()”-语句。 我试过这样: 但这不起作用,例如.closearray()不返回PactDslJsonBody,而是返回DslPart,所以在.closearray()之后永远不能有任何东西?我不明白,有人能给我们演示一

  • 我正在尝试在一个POST API(微服务)上应用契约测试。我已经编写了消费者端的测试用例,并且生成了协议,现在我正在尝试使用pact-python在提供者端验证协议。但我看不出有任何选项可以为API的POST调用输入输入体负载。到目前为止我有这个

  • pact-jvm可以将结果发布回pact代理。但是,我似乎找不到使用标记发布的选项或方法,就像pact Broker的例子:

  • 我正在使用Pact进行消费者驱动的合同测试。在我的usecase中,我的消费者“some-market-service-consumer”正在使用提供者“market-service”。在某个市场服务消费者处“产生”的合同如下所示: 在provider-site上,我正在使用Pact-Provider-Verifier-Docker'。以下是我的测试结果: 看起来,好像测试工作良好-“电话”被测试