Contract Testing (Consumer Driven Contracts)
The aim is to test contracts in isolation. We create a contract and test if server implementation meets the contract. We also verify if the contract meets customer requirements.
Contract
Contract is sort of an agreement on the communication structure between producer (server) and client(s) (consumer).
The value of the contract is in the ability to verify BOTH sides of the communication against it.
We should be able using Contract to generate tests for the Producer (Server) but also we should be able to generate stubs (of producer/server) to be used in tests of Client(s).
Products of a Contract
Automatically generated tests of the producer (server) that verify it against the Contract.
For Server tests we want to test only the Contract (API) so we mock the facade and test only HTTP call.
For Client test we verify if Stub (generated after successful Server contract tests) returns what Client expects and if client can successfully process retrieved response.
Last updated
Was this helpful?