-
O mantra do TDD é red, green e refactor.
Mas porque escrever um teste que falha?
O TDD começa pelo fim, pelo objetivo do programa. Então antes de escrever o código em si, você elabora um teste para o código que você irá escrever. Esse primeiro teste falha porque ele é só o teste, de modo que ele vai chamar classes e métodos que ainda não foram escritos.
Mais ou menos assim: você está estudando para concurso e pega um assunto que nunca viu na vida, então antes de você estudar você baixa um simulado (um teste), você tenta fazer o simulado e erra, por razões óbvias, você não tinha os assuntos em mente. Ai você estuda e depois você faz o simulado de novo e vai acertar.
Red - é a criação do teste - do teste falho
Green - é a criação do código que irá passar no teste
Refactor - é a limpeza do código, uma limpeza com o cuidado de não introduzir erros.
-
O mantra do TDD é RED, GREEN e REFACTOR.
Mas porque escrever um teste que falha?
O TDD começa pelo fim, pelo objetivo do programa. Então antes de escrever o código em si, você elabora um teste para o código que você irá escrever. Esse primeiro teste falha porque ele é só o teste, de modo que ele vai chamar classes e métodos que ainda não foram escritos.
Mais ou menos assim: você está estudando para concurso e pega um assunto que nunca viu na vida, então antes de você estudar você baixa um simulado (um teste), você tenta fazer o simulado e erra, por razões óbvias, você não tinha os assuntos em mente. Ai você estuda e depois você faz o simulado de novo e vai acertar.
Red - é a criação do teste - do teste falho
Green - é a criação do código que irá passar no teste
Refactor - é a limpeza do código, uma limpeza com o cuidado de não introduzir erros.
-
O processo fundamental de TDD é mostrado na Figura 8.9. As etapas do processo são:
1. Você começa identificando o incremento de funcionalidade necessário. Este, normalmente, deve ser pequeno
e implementável em poucas linhas de código.
2. Você escreve um teste para essa funcionalidade e o implementa como um teste automatizado. Isso significa
que o teste pode ser executado e relatará se passou ou falhou.
3. Você, então, executa o teste, junto com todos os outros testes implementados. Inicialmente, você não terá im
plementado a funcionalidade, logo, o novo teste falhará. Isso é proposital, pois mostra que o teste acrescenta
algo ao conjunto de testes.
4. Você, então, implementa a funcionalidade e executa novamente o teste. Isso pode envolver a refatoração do
código existente para melhorá-lo e adicionar um novo código sobre o que já está lá.
5. Depois que todos os testes forem executados com sucesso, você caminha para implementar a próxima parte
da funcionalidade.
-
fail -> pass -> refactor