契约测试¶
契约是解释双方交易方式的协议。 同理,微服务上下文中的契约是指服务被调用时协商好的调用格式 。或者说,在微服务的上下文中,微服务契约是指消费者和 API 提供 方之间对确切通信方式的描述以及对期望的输入和输出格式而达成的协议。
备注
如果将 API 提供给其他服务,那么,开发人员便应考虑契约测试,这可以保证在 API 添加新参数或更改功能的情况下的可扩展性,以确保服务之间的契约不会因此而违约
与集成测试的区别:
对一个贷款服务应用而言,在批准客户贷款申请之前,该应用将调用第三方服务,以了解此客户可能在别的银行或借贷公司的贷款金额。
假设由于某种原因,第三方服务一方的契约被更改,那么应用的集成测试仍然会正常运行
因为我们所使用的模拟服务模拟了既定的返回值。但在真实的生产环境下,这个调用将会失败。
这就是契约测试产生的原因 。
参考¶
contract testing framework for HTTP APIs and non-HTTP asynchronous messaging systems: https://pact.io/