SpringBoot中基于Pact的契约测试
背景 如今,契约测试已经逐渐成为测试圈中一个炙手可热的话题,特别是在微服务大行其道的行业背景下,越来越多的团队开始关注服务之间的契约及其契约测试。 什么是契约测试 关于什么是契约测试这个问题,首先先看一下Pact官方文档给出的定义:pact的官方文档,是另一个可以帮助我们理解契约测试的地方。它对契约测试给出了这样的定义: " Contract testing is a way to ensure that services (such as an API provider and a client) can communicate with each other"。 这里面需要关注的重点是 "communicate " , 它给出了Pact对契约测试范畴(scope)的定义 。 契约测试又称之为 消费者驱动的契约测试。这里的契约是指软件系统中各个服务间交互的数据标准格式,更多的指消费端(client)和提供端(server)之间交互的数据接口的格式。 契约测试的价值 那什么是契约测试的价值呢?要说清楚契约测试的价值,就需要准确认识契约测试的精髓——"消费者驱动" 在讨论契约测试的范畴里,”消费者驱动”述及的对象是契约,而不是契约测试。所以谁被驱动的对象就是契约。举个例子,当某个provider正常上线后,某个consumer需要消费这个provider的服务