Integrações: WebMock/VCR
O curso trata de como uma aplicação Rails testa suas integrações de saída sem tocar a rede. O ponto de partida são as quatro integrações de um repositório: busca de ícone de site, webhooks de parceiros, OAuth do GitHub e e-mail. Depois compara quatro lugares para cortar o fio: uma falsa injetada, o modo de teste da biblioteca, o WebMock e os cassetes do VCR. Também aborda stubs e afirmações sobre requisições, modos de gravação, filtro de segredos, deriva, simulação em escala e um plano para esta aplicação.
O que você vai aprender
- ✓Por que chamadas reais de rede tornam a suíte instável, lenta, não repetível e com efeitos colaterais
- ✓Como escolher entre falsa injetada, modo de teste da biblioteca, WebMock e VCR
- ✓Usar disable_net_connect!, stub_request, stubs de falha e have_requested no WebMock
- ✓Configurar modos de gravação, correspondência de requisições e filter_sensitive_data no VCR
- ✓Mitigar a deriva entre stubs e o serviço real
- ✓Organizar stubs, casos de falha e cassetes em muitas integrações
O único HTTP que esta aplicação faz
Antes de aprender ferramentas para simular HTTP de saída, vale saber quanto HTTP de saída existe. Neste repositório, uma busca por todo cliente HTTP devolve dois arquivos.
Ler a aula completa grátis →Currículo
7 aulasO único HTTP que esta aplicação faz
Levanta as quatro integrações desta aplicação e mostra por que chamadas reais de rede prejudicam a suíte.
Quatro lugares para cortar o fio
Compara quatro pontos de corte (falsa injetada, modo de teste, WebMock e VCR) e o que cada um prova.
WebMock
Apresenta disable_net_connect!, stubs com with, caminhos de falha com to_timeout e afirmações com have_requested.
VCR e cassetes
Explica cassetes do VCR, modos de gravação, correspondência de requisições, filtro de segredos e quando gravar compensa.
O problema da deriva
Mostra por que falsas, stubs e cassetes se distanciam do serviço real e traz quatro mitigações fora da suíte.
Simulação em escala
Trata duplicação de stubs, testes só do caminho feliz, proliferação de cassetes e vazamento de estado global.
Juntando tudo: um plano para esta aplicação
Monta um plano em passos para esta aplicação: adicionar WebMock, testar erros, registrar surpresas e adiar o VCR.