术语表

服务消费者

服务消费者是指向另一组件(服务提供者)发起HTTP请求的组件。注意这并不依赖于数据的发送方式——无论是GET还是PUT / POST / PATCH消费者都是HTTP请求的发起者。

服务提供者

服务提供者是指向另一组件(服务消费者)的HTTP请求提供响应的服务器。

模拟服务提供者

模拟服务提供者用于在消费者项目中的单元测试里模拟真实的服务提供者,意味着不必需要真实的服务提供者就绪,就可以将类集成测试运行起来。

Pact文件

Pact文件是指一个含有消费者测试中所定义的请求和响应被序列化后的JSON的文件。即契约

Pact验证(契约验证)

要对一个Pact进行验证,就要对Pact文件中所包含的请求基于提供者代码进行重放,然后检查返回的响应,确保其与Pact文件中所期望响应相匹配。

提供者状态

在对提供者重放某个给定的请求时,一个用于描述此时提供者应具有的“状态”(类似于夹具)的名字——比如“when user John Doe exists”或“when user John Doe has a bank account”。

提供者状态的名字是在写消费者测试时被指定的,之后当运行提供者的pact验证时,这个名字将被用于唯一标识在请求执行前应运行的代码块。

Pact规范

Pact规范是一份用于控制实际生成的Pact文件结构的文档,允许不同语言之间的互操作性(例如,设想一个JavaScript实现的消费者连接到基于Scala JVM的提供者),并使用语义版本控制来指示具有破坏性的变更。

Pact每种语言的实现都要实现规范中的规则,并且明确说明支持哪个或哪些版本,主要对应于哪些特性是可用的。

该规范的当前版本是2.0,虽然目前各种实现还不是全都支持该版本。