我正在使用pact-python(0.10.0)。我想向具有实体ID的提供者发出请求:
/entity/6000d04d-d5d6-4a5f-81d3-7d8a72b46174
但是这个(6000d04d-d5d6-4a5f-81d3-7d8a72b46174)应该存在于数据库中。
什么是更好的解决方案:
使用其中存在的数据创建提供者状态(但提供者验证者将如何工作?合同是否应该具有在真实提供者中出现的ID?)
查询数据库中的所有ID并选择一个用于发出请求(为此我需要以某种方式更新并发布带有获取ID的协议)
或者有没有更好的解决方案,我可能错过了?
答案 0 :(得分:1)
您应该创建一个提供者状态,给定entity 6000d04d-d5d6-4a5f-81d3-7d8a72b46174 exists
将在重放交互之前使用正确的UID设置实体。
要充分利用合同测试,您需要能够为每次互动控制提供商中的数据。如果你不能,那么合同测试不适合你的问题空间。阅读https://docs.pact.io/documentation/provider_states.html和https://github.com/pact-foundation/pact-ruby/wiki/Why-Pact-may-not-be-the-best-tool-for-testing-public-APIs