Parfois, je vais rencontrer la situation où la correction d'un bogue nécessite que je supprime une section de code. Le puriste TDD recommanderait (je suppose) d'écrire un test qui échoue, de supprimer le code, puis de regarder le test réussir.
Maintenant, il semble vraiment étrange d'avoir un test affirmant que du code a été supprimé. Bien sûr, je suppose que cela garantirait que personne ne creuserait dans le contrôle des sources et ne remettrait ce code, mais est-ce que ça vaut le coup? Si cela en vaut la peine, cela semble certainement moins utile que d'écrire un test pour le code qui a été ajouté , non?
unit-testing
tdd
bug
jhewlett
la source
la source
Réponses:
Vous le regardez dans le mauvais sens. Le test n'affirme pas que le code a été supprimé. Le test fait valoir une certaine fonctionnalité.
Le test ne se soucie pas de la quantité de code nécessaire pour le faire passer, ni ne se rend compte que vous avez supprimé du code. La valeur d'un tel test est la même que tout autre test que vous créez en raison d'un bogue: vous avez confiance en l'absence du bogue lorsque le test réussit et l'intégration du test dans le processus de construction vous assure que le bogue sera probablement pas réintroduit.
Encore une autre façon de le voir du point de vue TDD est la suivante: lorsque vous savez que la suppression du code corrige le bogue et que vous vous demandez ensuite si vous devez écrire un test, vous avez déjà mal fait TDD. Une fois que vous avez commencé à travailler sur le bogue, vous devez d' abord écrire le test qui garantit la présence du bogue en échouant. Ce n'est qu'après que vous corrigez le bogue réel - qui peut nécessiter la suppression de code ou non - et faites passer le test. La question que vous posez ne se pose même pas de cette façon.
la source