Pact-python 如何在 URL 中测试具有 UUID 的获取请求

Pact-python how to test a get request having UUID in URL

我正在使用 pact-python (0.10.0)。我想向具有实体 ID 的提供商发出请求:

    /entity/6000d04d-d5d6-4a5f-81d3-7d8a72b46174

但是这个 (6000d04d-d5d6-4a5f-81d3-7d8a72b46174) 应该存在于数据库中。

什么是更好的解决方案:

  1. 使用其中存在的数据创建提供者状态(但是提供者验证器将如何工作?合约不应该具有真实提供者中存在的 ID 吗?)

  2. 查询数据库中的所有 id 并选择一个用于发出请求(为此我需要以某种方式更新并使用获取的 id 发布协议)

或者是否有我可能错过的更好的解决方案?

你应该创建一个提供者状态,给定 entity 6000d04d-d5d6-4a5f-81d3-7d8a72b46174 exists 它将在重播交互之前使用正确的 UID 设置实体。

要充分发挥合同测试的潜力,您需要能够控制提供程序中每次交互的数据。如果你不能,那么合同测试不适合你的问题space。阅读 https://docs.pact.io/documentation/provider_states.html and https://github.com/pact-foundation/pact-ruby/wiki/Why-Pact-may-not-be-the-best-tool-for-testing-public-APIs