如何为最近的使用者不再使用的接口编写协议测试?

问题描述

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

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

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

解决方法

我建议您签出旧版本的使用者的提交,从中创建一个新分支,向该分支添加协定测试,然后按常规发布。

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

,

如果我理解正确,生产中会有两个(或多个)版本的C,且P上的合同版本不同。一种选择是使用单独的名称发布旧的C并验证其是否正常。另一种选择是发布同名公约。

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