Au-delà du simple fait de penser à une chose, l'un des paradigmes de TDD consiste à écrire le moins de code possible pour réussir le test. Lorsque vous écrivez un test à la fois, il est beaucoup plus facile de savoir comment écrire suffisamment de code pour que ce test réussisse. Avec toute une série de tests à réussir, vous n’allez pas au code par petites étapes, mais vous devez faire un grand saut pour les faire passer en une fois.
Maintenant, si vous ne vous limitez pas à écrire le code pour les faire passer tous «d'un coup», mais écrivez plutôt juste assez de code pour passer un test à la fois, cela pourrait quand même fonctionner. Cependant, il vous faudrait plus de discipline pour ne pas écrire et écrire plus de code que nécessaire. Une fois que vous commencez dans cette voie, vous vous permettez d'écrire plus de code que ne le décrivent les tests, ce qui peut ne pas être testé , du moins dans le sens où il n'est pas piloté par un test et peut-être même dans le sens où il n'est pas nécessaire. (ou exercé) par tout test.
Décrire ce que la méthode devrait faire, sous forme de commentaires, d'histoires, de spécifications fonctionnelles, etc., est parfaitement acceptable. J'attendrais cependant de les traduire en tests un à la fois.
L'autre chose que vous pouvez manquer en écrivant les tests en une seule fois est le processus de réflexion selon lequel le passage d'un test peut vous inciter à penser à d'autres cas de test. Sans une banque de tests existants, vous devez penser au prochain cas de test dans le contexte du dernier test de réussite. Comme je l'ai dit, avoir une bonne idée de ce que la méthode est censée faire est très bon, mais plusieurs fois je me suis trouvé à trouver de nouvelles possibilités que je n'avais pas envisagées à priori, mais qui ne se sont produites qu'au cours de l'écriture du texte. tests. Vous risquez de ne pas les voir, à moins que vous ne preniez l'habitude de penser aux nouveaux tests que je peux écrire et que je n'ai pas encore.