Pact契约测试:让前后端联调少一点猜测
2023年11月记录,分类「接口测试」。这篇更像工作笔记,记录的是一次问题拆解和复用清单。
契约解决什么
前后端联调很多争议来自字段理解不一致。Pact 这类契约测试适合把消费者期望固定下来,让接口变化提前暴露。
对测试来说,最后要落到可复现、可验证、可交接,文章也是按这个思路写的。
怎么维护
- 由消费方定义需要的字段、类型和状态码。
- 服务方在 CI 中验证契约,避免字段变更悄悄上线。
- 契约失败时先判断是合理变更还是兼容性问题。
provider.addInteraction({
state: 'order exists',
uponReceiving: 'get order detail',
withRequest: { method: 'GET', path: '/orders/10001' }
});
失败处理
- 契约覆盖核心字段而不是整个响应快照。
- 新增字段不影响旧消费方。
- 破坏性变更有版本策略。
落到团队协作里,重点是让新人能照着补用例,开发也能看懂为什么要改。
适用边界
契约测试不是替代接口测试,而是提前发现联调阶段最常见的认知偏差。等业务规则再稳定一点,可以把这里的检查点拆成参数化用例。