合约是消费者所依赖的一系列交互:这些请求,以及以特定格式和状态码返回的响应。合约测试会分别检查每一方是否符合合约要求——消费者对照基于合约构建的模拟对象进行测试,提供者对照合约中记录的请求进行测试——从而在部署之前而非在端到端环境中发现不兼容性。
在消费者驱动的契约测试(Pact 是最知名的工具)中,每个消费者的测试都会生成一个契约文件;提供者的构建过程会针对实际服务重放每个契约,如果任何预期被打破,测试就会失败。而在基于模式的契约测试中,响应则会根据 API 的 OpenAPI 文档进行验证。
合约测试检查行为。它们检查结构和协议——字段是否存在、类型是否正确、状态是否明确。字段中的价格是否正确是功能测试的任务。用合约测试代替功能测试的团队最终会交付格式良好但错误的答案。
从任何 API 的文档页面下载其 OpenAPI 文档,并验证您通过 Try it out 获得的响应;断言语言还可以逐点确定合约,例如 body.data.0.id 存在。
所有术语 · 测试技巧 · 全部 39 个模拟 REST API
最后更新时间