devterview_$ iniciar simulação

Testes de contrato entre serviços

DifícilSêniorEstratégia de testes

Pergunta

Dois serviços conversam por HTTP. Testes end-to-end dos dois juntos são lentos e frágeis. O que é um teste de contrato e como ele ajuda?

Resposta esperada

Um teste de contrato verifica que o consumidor e o provedor de uma API concordam sobre a forma da comunicação, sem subir os dois juntos. No estilo consumer-driven (ex: Pact): o consumidor escreve testes contra um mock do provedor e esses testes GERAM um 'contrato' (exemplos de request→response esperados). Esse contrato é então verificado contra o provedor real na CI dele — se o provedor mudar um campo que aquele consumidor usa, a build do provedor quebra, antes de ir pra produção. Ganho: pega incompatibilidades de integração com a velocidade e o isolamento de testes de unidade, e cada lado testa sozinho. Custo: infra do broker de contratos e disciplina de manter os contratos versionados. Bom pra times/serviços que evoluem em ritmos diferentes.

Por que perguntam isso

Pergunta sênior. Termo-chave: 'consumer-driven contract' / Pact. Conecta com a pergunta de versionamento de API.

#contract-testing#pact#microservicos
publicidade

Relacionadas