de regressão em baixo nível - Quanto menos bugs vão para staging/production melhor! ✔ Habilidade de melhorar o design sem medo de quebrar (refactoring) ✔ Testes unitários são uma forma de código de exemplo
Mantém focado - Melhor design ✔ Ajuda a entender melhor as regras de negócio ✔ Dá direção - Pode ficar trancado em como testar o próxima requisito, ou como fazer um teste passar, mas normalmente se sabe o que precisa fazer no momento e o que fazer a seguir ✔ Reduz o custo de bugs - Bugs encontrados a mais cedo são mais fáceis de corrigir - TDD ajuda a encontrar bugs em minutos, em vez de dias/meses
precisa esperar que funcionalidades fiquem completamente prontas para saber se funciona - Você sabe quando o código está "pronto", pois ele faz aquilo que projetou para ele fazer - Sensação de realização a cada teste/classe/dia
sem testes! - (a não ser que o código não precise funcionar) - A maior parte do esforço do desenvolvedor está em corrigir código depois que ele é “pushado” pro repositório