首页 > 解决方案 > 如何使用@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集成不是一个好的选择?

标签: javajunit5pact

解决方案


我的建议是编写 2 个单独的测试,其中每个测试都有一个通过 Pact 模拟的提供者,而另一个提供者被存根(例如,使用标准单元测试存根)。


推荐阅读