Testing microservices with consumer-driven contracts

Video description

Unlike a monolith, which is an independently deployable unit that can be tested as a whole, microservices are a distributed system, composed of many services that can be tested and deployed independently of each other. While this approach has many advantages, from a testing perspective it can actually make things harder. How do I know the impact of changing or deploying a microservice on other microservices that may depend on it?

Andrew Morgan dives into common microservices testing anti-patterns, including building an end-to-end testing microservices like a monolith, the “distributed monolith” anti-pattern, and unit tests that are heavily reliant on stubs of other microservices that may be inaccurate or stale. He then offers an overview of consumer-driven contract (CDC) testing—a TDD at the API level approach to microservices—as a way to mitigate them. Andrew walks you through the concept end to end, explaining how to use it to guarantee that both message-driven and API-driven interactions between microservices will work without end-to-end testing, provide a fast and reliable feedback loop for microservices development, and deliver independently testable and releasable microservices.

Product information

  • Title: Testing microservices with consumer-driven contracts
  • Author(s): Andrew Morgan
  • Release date: December 2019
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 0636920362241