Summary
Keywords
Full Transcript
Nesse vídeo eu explico o que são testes de contrato em serviços web, o que é consumer driven contract tests e três formas de implementá-los O que é um contrato em serviços web? Um contrato é um acordo entre produtores/provedores(servidores) e consumidores (clientes). Eles definem e estrutura de uma API (especificação e documentação) requisições/respostas. Ou também o formato da mensagem em mensagerias (kafka, rabitMQ, etc) - para sistemas assíncronos. Os contratos podem ser escritos em YAML, JSON, git, confluence, etc. Porque testar contratos? Microserviços ou serviços web são desenvolvidos por diferentes equipes, em diferentes departamentos e até empresas. Mudanças no produtor podem causar falhas nos consumidores. Consumidores normalmente não conseguem testar com os sistemas reais (caro, lento, não confiável). Nem sempre também eles disponibilizam ambientes de teste também. Por isso precisamos usar MOCKS/STUBS/DOUBLES. Mas esses mocks podem ficar fora de sincronia com o serviço real. As equipes consumidoras podem ser proteger dessas falhas criando testes de integração que comparam os resultados da API com resultados de teste. Teste de Contrato É uma técnica de teste de integração entre serviços pra garantir que eles conseguem se comunicar. Testar contratos nos dá feedback mais rápido e mais barato que testes E2E. Produtores passam a conhecer os consumidores e como consumidores eles usam os dados. Esses testes podem ser implementados por meio de várias abordagens e com diversas ferramentas. A mais conhecida e propagada é a Consumer Driven Contract Tests (Testes de Contrato orientado/dirigido aos usuários). Algumas ferramentas para implementar esses testes são pact, postman, spring cloud contract. Implementação da terceira forma explicada no nosso github https://github.com/vinnypessoni/contract-tests-example 🚀 Automatize Testes de APIs do Zero! https://viniciuspessoni.com/curso-testando-apis-com-postman-do-zero 💥🔥Quer aprender teste mas não sabe por onde começar? vem pra comunidade https://hotm.art/zcimYx ✅ Conteúdo Grátis todo dia no INSTA: https://www.instagram.com/pessonizando ✅ Conteúdo Grátis no Telegram: http://t.me/pessonizando ✅ Aprenda mais em: https://viniciuspessoni.com #programação #testedesoftware #testesdecontrato
