Ocasionalmente, encontro a situação em que a correção de um bug exige que eu exclua uma seção do código. O purista do TDD (suponho) defenderia a gravação de um teste com falha, a exclusão do código e a observação do teste.
Agora, parece realmente estranho ter um teste afirmando que algum código foi removido. Claro, suponho que isso garantiria que ninguém investigasse o controle de origem e colocasse esse código de volta, mas vale a pena? Se vale a pena, certamente parece menos valioso do que escrever um teste para o código que foi adicionado , certo?
unit-testing
tdd
bug
jhewlett
fonte
fonte
Respostas:
Você está olhando da maneira errada. O teste não afirma que o código foi removido. O ensaio faz valer uma determinada funcionalidade.
O teste não se importa com a quantidade de código necessária para fazê-lo passar, nem percebe que você removeu algum código. O valor de ter esse teste é o mesmo que qualquer outro teste que você criar devido a um erro: você confia na ausência do erro quando o teste passa e a integração do teste no processo de criação garante que o erro ocorra. provavelmente não será reintroduzido.
Contudo uma outra maneira de olhar para ele a partir de uma perspectiva TDD é o seguinte: Quando você sabe que a exclusão do correções de código a bugs e você , em seguida, se perguntam se a escrever um teste, você já fez TDD errado. Depois de começar a trabalhar no bug, você deve primeiro escrever o teste que garante a presença do bug com falha. Somente depois você corrige o bug real - que pode exigir a remoção do código ou não - e faz o teste passar. A pergunta que você está fazendo nem se coloca dessa maneira.
fonte