java - 如何使用@PactTestFor 定义多个提供者
问题描述
我们正在使用 PACT 库进行合同测试。当前项目依赖于 junit5 集成。我必须扩展一项测试以使用 2 个提供者而不是 1 个:
当前版本:
@Test
@PactTestFor(providerName = "request-repository", hostInterface = "0.0.0.0", port = "9991")
public void myTestMethod() throws Exception {}
我阅读了文档:https ://docs.pact.io/implementation_guides/jvm/consumer/junit5 ,它似乎还不受支持:
不支持#
当前的实现不支持使用多个提供者的测试。这将在以后的版本中添加。
我检查了发行说明,但没有发现任何更新。还有另一种方式来定义另一个提供者吗?即:
@Test
@PactTestFor(providerName = "request-repository", hostInterface = "0.0.0.0", port = "9991")
@PactTestFor(providerName = "result-repository", hostInterface = "0.0.0.0", port = "9992")
public void myTestMethod() throws Exception {}
或者在这种情况下junit5集成不是一个好的选择?
解决方案
我的建议是编写 2 个单独的测试,其中每个测试都有一个通过 Pact 模拟的提供者,而另一个提供者被存根(例如,使用标准单元测试存根)。
推荐阅读
- android - 在 Android 8.0 及更高版本中监控显着的电池变化?
- mysql - 将计算的 COUNT 列从一个视图添加到另一个视图
- c# - 使用 TextWriter 时 Serilog 未按预期记录
- node.js - 验证 package.json 依赖值中的 semver 版本
- java - 无法单击硒中的十字按钮
- dialogflow-es - 用户标识如何在 Dialogflow Fulfillment Webhook 中工作?
- ehcache-3 - 内存中的 Ehcache 3 大小
- .net - 如果任何行上不存在另一个值,则匹配一个值
- r - 使用 ggplot,使用刻度中的 unit_format 和 Dollar_format 来标记文本
- javascript - Google 地方信息自动填充功能有时不工作