A formal agreement between individuals or parties. "the country negotiated a trade pact with the US"
synonyms: agreement, protocol, deal, contract
What is Pact?
The Pact family of frameworks provide support for Consumer Driven Contracts testing.
Consumer Driven Contracts
Contract is a collection of agreements between a client (
Consumer) and an API (
Provider) that describes the interactions that can take place between them.
Consumer Driven Contracts is a pattern that drives the development of the
Provider from its
Consumer's point of view. It is TDD for services.
Pact is a testing tool that helps you write
Contracts, and guarantees those
Contracts are satisfied.
Why do you want to use Pact
|Confidence||Faster||Less Error Prone|
|Continuously evolve your codebase knowing that Pact will guarantee contracts are met.||No need to wait for slow e2e tests to know whether or not your applications will work together.||Generation and verification of contracts are automatically managed by Pact.|
I still need convincing.
Talks and Presentations
Check out this talk about Pact and the slides below from one of the Pact authors for an introduction.
For a great explanation of consumer-driven contracts (and Pact!), check out this talk from Atlassian at their 2016 summit: Verifying Microservice Integrations with Contract Testing.
Hear how Soundcloud "Move Fast and Consumer-Driven-Contract-Testing Things" in their talk from MicroXchg 2017.
- Ruby Pact
- JVM Pact and Scala-Pact
- .NET Pact
- JS Pact
- Go Pact (there is also a v1.1 native Pact Go)
- Swift / Objective-C Pact
You can get help on Pact from the following channels: