Before we deploy an application to production, we need to be sure it works correctly with the other applications with which it integrates. To do this, traditionally we run integration tests using "live", deployed applications.
By testing each side of an integration point using a simulated version of the other application, we get two sets of tests which
This is because there is nothing to ensure that the simulated applications behave the same way as the real ones.
Pact solves the problem of keeping the two sets of tests in sync by use of a "contract", also known as a "pact".
During the consumer tests, each request made to a Pact mock provider is recorded into the contract file, along with its expected response.
A Pact simulated consumer then replays each request against the real provider, and compares the actual and expected responses. If they match, we have verified that the simulated applications behave the same way as the real applications. This means the two real applications should communicate correctly when they interact in real life.
Using Pact gives you tests that
You can learn more about how Pact works at pact.io
Pactflow is the hub that sits between the consumer and provider projects, allowing them to exchange contracts and verification results.
Pactflow enables you to build contract testing into your continuous deployment/continuous integration pipelines, and ensure that your services are safe to deploy without lengthy and burdensome integration tests.