
Contract Testing
Consumer-driven contract testing for microservices using Pact, schema validation, API...
Install
npx skills add proffesor-for-testing/agentic-qe --skill contract-testing -g -a claude-code -y- Repository
- proffesor-for-testing/agentic-qe521
- Category
- Testing
- Updated
- 3d ago
- License
- MIT
- Context cost
- Mediumabout 1,620 tokens
- Runs scripts
- No, instructions only
What it does
Consumer-driven contract testing for microservices using Pact, schema validation, API versioning, and backward compatibility testing. Use when testing API contracts or coordinating distributed teams.
Contract Testing
<default_to_action> When testing API contracts or microservices:
- DEFINE consumer expectations (what consumers actually need)
- VERIFY provider fulfills contracts (Pact verification)
- DETECT breaking changes before deployment (CI/CD integration)
- VERSION APIs semantically (breaking = major bump)
- MAINTAIN backward compatibility for supported versions
Quick Contract Testing Steps:
- Consumer: Define expected request/response pairs
- Provider: Verify against all consumer contracts
- CI/CD: Block deploys that break contracts
- Versioning: Document supported versions and deprecation
Critical Success Factors:
- Consumers own the contract (they define what they need)
- Provider must pass all consumer contracts before deploy
- Breaking changes require coordination, not surprise </default_to_action>
Quick Reference Card
When to Use
- Microservices communication
- Third-party API integrations
- Distributed team coordination
- Preventing breaking changes
Consumer-Driven Contract Flow
Consumer → Defines Expectations → Contract
↓
Provider → Verifies Contract → Pass/Fail
↓
CI/CD → Blocks Breaking Changes
Breaking vs Non-Breaking Changes
| Change Type | Breaking? | Semver |
|---|---|---|
| Remove field | ✅ Yes | Major |
| Rename field | ✅ Yes | Major |
| Change type | ✅ Yes | Major |
| Add optional field | ❌ No | Minor |
| Add new endpoint | ❌ No | Minor |
| Bug fix | ❌ No | Patch |
Tools
| Tool | Best For |
|---|---|
| Pact | Consumer-driven contracts |
| OpenAPI/Swagger | API-first design |
| JSON Schema | Schema validation |
| GraphQL | Schema-first contracts |
Consumer Contract (Pact)
// Consumer defines what it needs
const { Pact } = require('@pact-foundation/pact');


