Tous les exemples que j'ai lus et vus sur les vidéos de formation ont des exemples simplistes. Mais ce que je ne vois pas si je fais le "vrai" code une fois que je suis vert. Est-ce la partie "Refactor"?
Si j’ai un objet assez complexe avec une méthode complexe, j’écris mon test et le strict minimum pour le faire passer (après sa première défaillance, le rouge). Quand dois-je revenir en arrière et écrire le code réel? Et combien de code dois-je écrire avant de refaire le test? Je devine que le dernier est plus d'intuition.
Edit: Merci à tous ceux qui ont répondu. Toutes vos réponses m'ont énormément aidé. Il semble y avoir différentes idées sur ce que je demandais ou sur quoi je m'embarrassais, peut-être qu'il y en avait un, mais ce que je demandais, c'était: disons que j'ai une application pour la construction d'une école.
Dans ma conception, je veux commencer par une architecture, User Stories, etc. À partir de là, je prends ces user stories et je crée un test pour tester la user story. L'utilisateur dit, nous avons des gens qui s'inscrivent à l'école et paient des frais d'inscription. Alors, je pense à un moyen de faire échouer cela. Ce faisant, je conçois un test de classe pour la classe X (peut-être étudiant), qui échouera. Je crée ensuite la classe "Student". Peut-être que "l'école" je ne sais pas.
Quoi qu’il en soit, la conception de TD me force à réfléchir à l’histoire. Si je peux faire échouer un test, je sais pourquoi il échoue, mais cela suppose que je puisse le faire passer. Il s'agit de la conception.
Je compare cela à la réflexion sur la récursivité. La récursivité n'est pas un concept difficile. Il est peut-être plus difficile d’en garder une trace dans votre tête, mais en réalité, le plus difficile est de savoir, quand la récursivité "se déclenche", quand arrêter (à mon avis, bien sûr). Je dois donc penser à ce qui cesse la récursivité en premier. Ce n'est qu'une analogie imparfaite, et elle suppose que chaque itération récursive est un "pass". Encore une fois, juste un avis.
Dans la mise en œuvre, l'école est plus difficile à voir. Les grands livres numériques et bancaires sont "faciles" dans le sens où vous pouvez utiliser une arithmétique simple. Je peux voir a + b et retourner 0, etc. Dans le cas d'un système de personnes, je dois réfléchir plus sérieusement à la façon de mettre en œuvre cela. J'ai le concept de l'échec, passe, refactor (principalement en raison de l'étude et de cette question.)
Ce que je ne sais pas est basé sur le manque d'expérience, à mon avis. Je ne sais pas comment échouer en inscrivant un nouvel étudiant. Je ne sais pas comment faire échouer une personne en tapant un nom de famille et que celui-ci soit enregistré dans une base de données. Je sais comment faire un + 1 pour les mathématiques simples, mais avec des entités comme une personne, je ne sais pas si je ne fais que tester pour voir si je récupère un ID unique de base de données ou quelque chose d'autre lorsque quelqu'un entre un nom dans un base de données ou les deux ou ni l'un ni l'autre.
Ou peut-être que cela montre que je suis toujours confus.