0

我有一个奇怪的情况,我不知道如何处理它:假设我有一个消费者C和一个提供者P

当我们实施这些服务时,我们没有使用 Pact。所以问题来了:旧版本的 C 需要一个特定的 P 接口,它通过 url 参数提供一些信息。但是最新版本的 C 甚至无法发送这种请求。由于仍然存在旧版本的 C,我们需要确保该接口仍然由 P 提供并正常工作。

我正在使用 Pact-JVM,看起来我必须以某种方式发送此请求,否则测试将失败。我正在努力为这种情况创建一个有意义的测试。我可以创建一个发送请求的假人,但这不会测试任何东西。有人知道在这种情况下该怎么做吗?

4

2 回答 2

1

我建议您检查旧版本消费者的提交,从中创建一个新分支,将协议测试添加到该分支,然后正常发布。

如果所有其他方法都失败了(我通常不会建议这样做),您可以使用您最近生成的协议,手动修改它以匹配旧消费者的期望,然后手动将其发布到 Pact Broker。

于 2020-09-04T23:14:24.577 回答
1

如果我理解正确的话,生产中有两个(或更多)版本的 C 在 P 上具有不同版本的合同。一种选择是使用单独的名称发布旧 C 并正常验证它。另一种选择是发布同名协议。

如果您执行后者,则需要确保将两个版本都标记为prod,然后在提供者端,您可以使用消费者版本选择器prod验证合同的所有版本。

于 2020-09-06T05:53:56.833 回答