Testes de contrato para microserviços orientados a eventos utilizando o Pact
Olá!
Ana Ludmila�QA - Thoughtworks
Bruna Gonçalves�QA - Thoughtworks
2
Expectativas
3
A nossa história
4
Nossa história
5
A
B
C
D
🕙
🕙
🕙
🕙
O problema
6
Pirâmide de Testes
Pausa para a Pirâmide de Testes
1
8
Lento
Acoplado
Caro
Rápido
Barato
Desacoplado
9
E2E
Integração
Unitários
Testes de
(e2e)
Testes de Api
Testes de Contrato
Testes de Componente
Testes unitários
Testes Manuais
Exploratórios
Testes de Contrato
Uma breve introdução
2
Tem como objetivo garantir que o conteúdo fornecido não tenha sido modificado, podemos dizer que tem a finalidade de validar se o contrato acordado foi ou não quebrado; deve validar se o schema permanece o mesmo garantindo assim a integridade dos dados na comunicação entre cliente/servidor.
12
“
13
Abordagens
3
Consumer-Driven Contract�
Os Consumidores definem suas expectativas e o Provedor verifica se elas foram cumpridas
Provider-Driven Contract
O Provedor define o contrato e os Consumidores verificam se são compatíveis com ele
15
Revela interfaces não utilizadas
Revela atributos de interfaces não utilizados
CDC
Permite que os consumidores dirijam a implementação de um contrato.
Usando o CDC, os consumidores de uma interface geram contratos e executam testes que verificam as interfaces consumidas. A equipe consumidora pública esses contratos para que a equipe provedora possa buscar e executar esses testes facilmente. A equipe provedora agora pode desenvolver sua aplicação executando os testes do CDC. Depois que todos os testes passam, eles sabem que implementaram tudo que a equipe consumidora precisa.
16
HTTP vs AMQP
4
18
Exemplo
5
Como o provider lida com os pactos
20
Baixa os Stubs do repositório
Testa com os stubs do repositório
Provider
Como o consumer lida com os pactos
21
Gera um stub da mensagem na fila
Testa usando o Stub
Disponibiliza Stubs em repositório
Consumer
22
23
Referências
24
Obrigada!
Bruna Gonçalves�QA - Thoughtworks
Ana Ludmila�QA - Thoughtworks
25