0

我正在研究 Pact 合同测试,我有一个问题,是否应该在此测试期间模拟业务逻辑。

假设我有一个端点

POST /user

{
  "name": "first name"
  "accountID": "12345678"
}

假设我已经编写了消费者测试并通过提供者进行了验证。但是,要验证它,我需要运行实际的 API。问题是当我在我的本地环境accountID中运行时12345678确实存在。但是,当另一个开发人员在他的环境中运行它时 - 它可能不存在。

我的问题是 - 我该如何解决这个问题?我需要模拟端点内的业务逻辑吗?但在那种情况下,它不只是成为一个有效载荷验证器,本质上是 protobuf 可以做的吗?

4

1 回答 1

0

消费者测试只负责生成有效的合同。合约是通过模拟 API 响应生成的。您通常会针对请求模拟您期望/需要的某些字段或操作。

provider中,您将通过点击正在运行的提供者实例来验证该合同。现在,在验证合同的交互之前,提供者需要处于特定状态是很常见的。为此,您可以使用 Provider States 来确保 DB 处于正确的状态。您应该分别定义每个交互的状态设置,并确保在每次交互之前/之后重置数据库,以避免一个状态数据影响另一个。

参考:

于 2022-01-21T05:38:59.687 回答