Contract testing valida integração entre services. Consumer define expectativa, Provider valida. Detecta breaking changes antes de deploy.
Conceitos Principais
Consumer Contract
Consumer define expectativa: "GET /users retorna array com id, name". Gera contract file.
Provider Verification
Provider valida contract. API real atende expectativa? Falha se quebra contrato.
Contract Broker
Pact Broker armazena contracts. Versiona. Garante compatibilidade antes de deploy.
Consumer-Driven
Consumers definem necessidades. Providers implementam. Previne over-engineering.
Passo a Passo
Boas Praticas
Recomendacoes
• Consumer-driven (não provider-driven)
• Contracts pequenos e focados
• Use Pact Broker em prod
• can-i-deploy antes de release
• Version contracts
Erros Comuns
Evite estes erros
• Contract testing para tudo (use integration quando possível)
• Provider-driven contracts
• Não usar broker (contracts desatualizados)
• Contracts muito genéricos
• Não integrar no CI/CD