Exploring consume driven contract testing
Testing an application requires effort and time to do it “properly”, for example, in Succeeding with Agile by Mike Cohn, the pyramid of tests is a guide to understand what amount of tests we should have in an application. Despite the pyramid having no numbers, the proportion is what we should focus on.
On the other hand, Cohn didn’t mention other types s tests that could be beneficial for developers to have in place. Such as Contract Testing. Contract testing is a way to unload the heaviness of integration and even end-to-end tests to give developers faster feedback [1].
In this post, I am going to explore a bit about what is Contract Testing (CT) and what it means for developers to adopt such a strategy.
The need for a contract
Often applications do not survive in isolation, they need to communicate with other services to fulfill business needs.
Resources
- Consumer-driven Contract Testing (CDC)
- Spock Primer
- Evolving a Service: An Example
- Testing in microservice systems: a repository mining study on open-source systems using contract testing
- Contract-driven development - #SCOPUS 2007
- Improving Object-Oriented Software Contracts - May 2011
References
- [1]M. Corporation, “Consumer-driven Contract Testing (CDC),” 2022 [Online]. Available at: https://microsoft.github.io/code-with-engineering-playbook/automated-testing/cdc-testing/. [Accessed: 21-Jun-2021]