Pact
什么是Pact?
Pact框架家族提供对消费者驱动的契约测试的支持。
消费者驱动的契约
契约
是在客户端(消费者
)与API端(提供者
)之间的一组约定,描述了两者之间所发生的交互。
消费者驱动的契约是一种从消费者
视角来驱动提供者
开发的模式。
Pact是一种可用于确保这些契约
被满足的测试工具。
为什么使用Pact
信心 | 更快 | 更不容易出错 |
---|---|---|
持续演进你的代码库,Pact将会保证契约被满足。 | 不用再搭建端到端的环境。不用再手动测试。 | 契约的生成和验证都是由Pact自动管理的。 |
更多使用Pact的理由。
演讲与展示
关于Pact的介绍,参见Pact作者之一的如下关于Pact的演讲及幻灯片。
具体到JVM相关的演讲,在MelbJVM四月的meet-up和Melbourne Microservices六月的meet-up上曾进行过名为Deploy with Confidence!的演讲。演讲幻灯片在这里。
可以看看Atlassion在其2016 summit上的演讲:Verifying Microservice Integrations with Contract Testing,对消费者驱动的契约(和Pact)作出了很好的解释。
还可以听听Soundcloud在MicroXchg 2017上的演讲“Move Fast and Consumer-Driven-Contract-Testing Things”。
各种语言的实现
- Ruby Pact
- JVM Pact 和 Scala-Pact
- .NET Pact
- JS Pact
- Go Pact (还有一个v1.1版本的原生Pact Go)
- Swift / Objective-C Pact
- Python
介绍性文章
获得帮助
你可以从如下渠道获得关于Pact的相关帮助:
- Stack Overflow:
https://stackoverflow.com/questions/tagged/pact - Gitter: 加入https://gitter.im/realestate-com-au/pact和https://gitter.im/DiUS/pact-jvm的讨论
- Twitter: @pact_up