问题标签 [pact-java]
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.
java - PACT:如何使用 Provider 数据库中存在的有效数据获得动态路径
我有一个 restFul API http://localhost:8080/books/ {id} 它返回具有特定 ID 的书。
前任:
获取http://localhost:8080/books/1
将返回
{ "id" : 1, "pages" : 20, "price" : 100 }
获取http://localhost:8080/books/2
将返回
{ “id”:2,“pages”:30,“price”:120 }
我已经使用正则表达式代替 {id} 编写了我的消费者期望并生成了 PACT。
现在提供程序中没有数据。(数据库中没有图书信息)。当我在提供商端运行协议验证时,它会失败,因为它无法通过点击实际服务来交叉检查合同来获取任何信息。
是否可以在没有数据存在于提供商数据库中的情况下验证合同?或者有什么解决方法吗?
如果我们将提供者部署到多个环境中,提供者的数据库也会发生变化,如何处理?
感谢帮助。谢谢。
pact - 我应该测试合同中的所有枚举值吗?
我对是否应该考虑某种类型的测试功能或合同有疑问。
假设我有一个类似 /getToolType 的 API,它接受 {object" "myObject"} 作为输入,并以 {type: "[az]+"} 形式返回类型
客户端和服务器之间达成一致,返回的类型将匹配一组字符串,比如 [hammer|knife|screwdriver],因此消费者决定在枚举中解析它们,当返回的类型未知时使用备用值。
消费者是否应该为每种类型(锤子、刀子、螺丝刀)包括一个测试用例,以确保生产者仍然遵守始终返回的协议,例如,当使用锤子对象调用 /getToolType 时,小写字符串“锤子” ? 或者你会认为这样的测试用例是有用的吗?为什么?
pact - 契约消费者测试中各个参数的模式匹配
使用 pact-jvm - Java
所以我们有我们的 api,它以十进制/浮点值响应几个参数。"body": { "status": "api is up.", "totalTime": 0.005939006805419922 }" 我尝试使用正则表达式匹配,但协议正文生成数据,这与实际 api 返回的小数不匹配。
协议生成:
}
协议与实际响应的差异:
差异:
那么是否可以使用“eachlike”而不是 decimalType 来匹配这些值的模式?当我查看 eachLike 时,它接受一个字符串和一个 int - https://github.com/DiUS/pact-jvm/blob/master/pact-jvm-consumer/src/main/java/au/com/dius /pact/consumer/dsl/PactDslJsonBody.java#L580
junit - PACT DSL .closeObject 用于格式化分层、PACT 文件交互、响应
我无法使用 PACT DSL.closeObject()
来格式化 PACT 交互响应。我正在征求建议以使这项工作正常进行,或者询问是否.closeObject()
没有按预期工作?我有一个包含 2 件商品的购物车。当我尝试使用 2 项格式化预期响应时.closeObject()
,它不会编译,请参见下面的代码。编译错误在第一行.closeObject()
之后".stringMatcher("name","iPhone")
。我需要shoppingCartItems
在 PACT 文件中创建预期响应的层次结构。PACT DSL 的广告用法.closeObject()
可以从此链接中找到,在“匹配地图部分中的任何键” 使用 .closeObject() 的 PACT DSL 示例中
预期的 JSON 响应负载,应类似于带有分层数据的预期 PACT 响应负载
maven - 契约:java-maven
我的疑问需要几个答案:
- Pact-mock-service 与 pact-jvm-server,两者是否相同?请描述一下。
- 在 java-maven 中实现 PACT
我可以运行这个:
https://github.com/anha1/microservices-pact-maven
https://github.com/warmuuh/pactbroker-maven-plugin
使用 pact-mock-service 和 pact-jvm-server 帮助我理解这一点
jvm - 让 pact-jvm 支持其他协议?
让 pact-jvm 支持 HTTP 以外的协议,比如 Thrift ( https://thrift.apache.org ) 有多难?换句话说,pact-jvm 的实现是否与 HTTP 紧密耦合?谢谢。
pact - closeArray 的 PACT-JVM 问题
所以我才开始使用 JVM-PACT。
我正在尝试创建这个 JSON
尝试这样做:但是在尝试调用 closeArray() 时它不断崩溃
我知道它说“不能在对象上调用 closeArray”,但它肯定是在尝试关闭“eachLike”
任何建议都会非常有帮助
pact - multiple pact version support from PACT-Broker
I am using JUnit for generating Pacts and Pacts maven plugin to post the pact into pact broker. I am using below plugin Configuration
While Consumenr pact is getting uploaded in broker, I am able to see only single entry of consumer pact of version 2.0. Eirlier I have uploaded version 1.0 eirlier, which is not present in the UI. Is there any way to see the multiple version of same provider pact in HAL browser and get different version of PACTS by Https GET request? Currently I am getting only latest consumenr pact version by http://your-pact-broker/pacts/provider/PROVIDER/consumer/CONSUMER/latest Please provide some info regurding this and let me know if you need any informaiton.
pact - pact-jvm:如何解决 au.com.dius.pact.consumer.PactMismatchesException
我正在尝试使用 pact-JVM 在我们的两个服务之间生成一个协议。但是当我尝试运行 Java 类时,我得到了这个异常。
1) 我怀疑契约体有问题,对吗?在 PactDslWithProvider 的 JSON 正文中有一个额外的“消息”参数,但在 runTest1() 方法中,我仅等同于列表,当我检查结果时,它们对我来说是相同的。2) 在 runTest1() 方法中提供实际的提供者 URL 是否正确?(提供者已经到位)
下面是我的Java类
}
编辑:
我刚刚发现,如果我注释掉 @Rule 部分,测试就会通过 - 但不会生成协议文件。我应该为此明确指定一个“协议”文件夹吗?