Odores e Heurísticas - Testes
Os principais pontos incluem:
Testes Devem Ser Fáceis de Escrever e Manter: Um bom teste deve ser simples, direto e fácil de modificar quando necessário.
Independência Entre Testes: Cada teste deve ser isolado e não depender da execução de outros para evitar efeitos colaterais.
Seguir a Estrutura Arrange-Act-Assert (AAA):
Arrange: Configurar o ambiente e os dados necessários para o teste.
Act: Executar a ação que será testada.
Assert: Verificar se o resultado obtido é o esperado.
Executar Rapidamente: Testes lentos desmotivam os desenvolvedores e prejudicam a produtividade.
Evitar Dependências Externas: Testes não devem depender de bancos de dados, APIs ou arquivos externos sempre que possível. O uso de mocks e stubs ajuda a evitar essas dependências.
Nomes Significativos para Testes: O nome do teste deve descrever claramente o cenário testado e o resultado esperado.
Cobertura Abrangente: Testes devem validar tanto os casos normais quanto os casos de erro e borda.
Testes Devem Ser Determinísticos: O mesmo teste deve sempre produzir o mesmo resultado, evitando falhas intermitentes (flaky tests).
Testes Como Documentação: Um bom conjunto de testes serve como uma forma de documentação viva do sistema, ajudando novos desenvolvedores a entenderem seu comportamento.