【问题标题】:Is there a way to add pact interaction into to JSON file and add to consumer test code in JAVA有没有办法将协议交互添加到 JSON 文件并添加到 JAVA 中的消费者测试代码
【发布时间】:2022-01-04 07:07:50
【问题描述】:

我们有一个要求,我们需要在 JSON 文件中拥有一个独立的协议服务器和交互(请求/预期响应对)并将其存储在一个目录中,然后添加到消费者测试并生成一个协议文件。我想知道这在 PACT 中使用 java 是否可行?如果可以,您能否提供一个示例?

【问题讨论】:

  • 很抱歉这个问题不是很清楚。您只是在询问如何使用 Java 进行协议测试吗?协议测试将始终生成合同文件。你想做的事情有什么独特之处?
  • 一个pact测试会生成一个合约文件,但是我们在编写一个带有@pact注解的pact测试时创建的请求和响应(如链接所示)docs.pact.io/implementation_guides/jvm/consumer/…我们可以将这些写在JSON文件中吗?将此 json 文件添加到 pact 测试以生成 pact 文件。或任何其他方式从包含(请求/响应/状态/路径)的 JSON 文件生成协议文件

标签: pact pact-jvm pact-java


【解决方案1】:

我认为问题在于从 JSON 文件生成合同。

请参阅此关于生成合约的说明:https://docs.pact.io/faq/#can-i-generate-my-pact-file-from-something-like-swagger

您绝对可以在 Java 中读取 JSON 文档并转换为匹配的 DSL。

在像 JS 这样的语言中更容易,因为 JSON 更加原生,但最终您需要注意诸如正确匹配规则之类的事情,否则您将创建非常脆弱的合同,难以在提供者方面进行验证。

另请参阅https://docs.pact.io/consumer,它为您提供有关编写良好消费者测试的建议。

【讨论】:

  • 感谢您的回答。是的,问题是关于从 JSON 文件生成合同。有没有java或者JS的示例项目供参考
  • 为什么要这样做?理想情况下,您希望您的合约从成功的协议测试运行中生成,以便您知道您的客户端代码与合约匹配
  • 是的,你是对的,但是有很多团队参与其中并使用不同的工具测试他们自己的方法。因此,我们决定共享一个包含来自消费者端的请求和预期响应的 json 文件。我们想从这个 JSON 文件中生成一个协议文件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-21
  • 2013-02-18
  • 2016-12-13
  • 1970-01-01
  • 2016-03-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多