Verifying Relationships: Consumer-Driven Contract Tests and Microservices
Microservice architecture brings many benefits but there is one potential pitfall when testing them. How do you model and test the many relationships between services? You could try integration tests but they are expensive to maintain, slow to run and come with orchestration complications.
Contract testing could help with this. But the traditional contract test has a circular problem. The team writing the service defines the contract and the test. As soon as this isn't kept up to date (only a matter of time) the test is useless.
A better approach is Consumer-Driven Contract testing. Here we use the output of contract tests owned by your consumers to test your API. This talk will introduce you to the Pact framework to write these tests and the key concepts. You will be able to avoid that integration test pack and have more time for other test activities in your team.
Thomas Shipley is a contract QA currently working with Equal Experts at John Lewis. He has experience across many different industries covering gaming, retail and big data. Previous companies include Microsoft, Just Eat and Datasift. Most recently he has been focused on API contract and performance testing. You can find out more at his blog https://tomdriven.dev