Testes & TDD
Por que testar?
Garantir que tudo vai estar funcionando;
Projeto pequeno (até 20 models/controllers) vs Projeto grande (mais de 20 models/controllers)
Exemplo:
- E-mail de boas-vindas exibe o endereço do usuário;
- Após um tempo, o usuário agora pode ter mais de um endereço;
Tipos de testes
- Testes unitários
- Testam uma função mínima e pura, que não realiza efeitos colaterais como acessos a bancos ou integrações externas;
- Testes de integração
- Os principais testes do back-end, testam funcionalidades completas como acesso à rotas até o retorno do controller;
- Testes E2E
- Testes de interface que simulam o acesso do usuário;
TDD (Test Driven Development)
- Criar o teste antes da funcionalidade;
- Facilita visualização das regras de negócio;
- RED ❯ GREEN ❯ REFACTOR
- RED: O teste vai falhar
- GREEN: O teste vai passar
- REFACTOR: A funcionalidade será refatorada
Code Coverage
- O que testar? Testei o suficiente? Falta algo?
- Code Covarega coleta informações das linhas de código que seus testes atuais não alcançaram;