Contract tests
There are some interesting tools especiallydedicated to contract testing. We will discuss this concept by looking at two of the most popular tools—Pact and Spring Cloud Contract.
Using Pact
As we have already mentioned, the main concept around contract tests is to define a contract between the consumer and provider, and then verify it independently for each service. Since the responsibility for creating and maintaining a contract lies mainly on the consumer side, this type of test is usually referred to as a consumer-driven test. The division into a consumer and provider side is clearly visible in Pact JVM. It provides two separated libraries, the first prefixed by pact-jvm-consumer
and the second prefixed by pact-jvm-provider
. Of course, the contract is created by the consumer in agreement with the provider, which has been illustrated in the following diagram:
Pact is, in fact, a collection of frameworks that provide support for consumer-driven contract testing. These implementations...