- 术语表
- 服务消费者
- 服务提供者
- 模拟服务提供者
- Pact文件
- Pact验证(契约验证)
- 提供者状态
- Pact规范
术语表
服务消费者
服务消费者是指向另一组件(服务提供者
)发起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,虽然目前各种实现还不是全都支持该版本。