使用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”?
当然,它看起来像是被序列化为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'。以下是我的测试结果: 看起来,好像测试工作良好-“电话”被测试