TDD - O que é TDD?
Introdução ao TDD: A filosofia principal do TDD (Test Driven Development) é, como o nome sugere, ter o desenvolvimento guiado pelos testes. Na prática, isso significa que antes de escrever o código relacionado à funcionalidade desejada, o desenvolvedor deve pensar em quais testes devem ser escritos para validar o comportamento da funcionalidade. Isso funciona como uma espécie de especificação da funcionalidade, preferencialmente escrita baseada em regras de negócio.
Importância das Regras de Negócio: Devemos dar preferência a regras de negócio para escrever os testes, pois é isso que funciona no final das contas. Por exemplo, não deve ser relevante se, internamente, um código chama uma biblioteca Excel ou se usa o algoritmo X em vez de Y, exceto em casos específicos onde estamos testando a biblioteca Excel ou o algoritmo X.
Vantagens do TDD: Eu entendo que o TDD tem duas principais vantagens:
- Teremos um código de muito mais fácil manutenção, pois os testes nos darão segurança na hora de modificar o código.
- Teremos uma especificação do que é esperado da funcionalidade descrita nos testes.
Desafios do TDD: Porém, acredito que o TDD não é uma disciplina tão simples e exige um certo estudo para sua execução correta.
Questionamentos Comuns: Alguns questionamentos que começam a surgir:
- Quais testes escrever?
- Se tudo o que interessa é que o teste passe, eu posso escrever código desorganizado, contanto que o teste passe?
- Quando faz sentido apagar testes?
Agora preciso trabalhar, depois continuo este post.