Les gens, il est toujours dit dans TDD que
Nous devrions écrire les junits avant même d'écrire le code actuel. P> BlockQuote>
D'une manière ou d'une autre, je ne suis pas capable de comprendre cela dans un esprit droit. J'espère que ce que cela signifie, c'est que vous écrivez simplement des méthodes vides avec lesquelles des signatures correctes et que votre cas d'essai devrait échouer initialement P>
dire dans l'approche TDD que j'ai besoin d'obtenir la liste des clients. P>
Selon ma compréhension, je vais écrire la méthode vide comme ci-dessous P>
public List<CustomerData> getCustomers(int custId){ return null; }
4 Réponses :
C'est en partie correct. p>
Utilisation d'un IDE (Eclipse, Intellij) Vous pouvez créer un test. Dans ce test, invoquer une méthode (qui n'existe pas) et à l'aide d'un outil de refactorisation crée une méthode avec la signature appropriée. P>
C'est une astuce qui facilite le travail avec TDD et plus amusant. P>
Selon , je vais écrire un cas de test JUnit où je vérifierai la taille de 0. Est-ce correct? Code> Vous devez écrire un test que
échoue code> et le bonne implémentation. p>
souvent, vous écrivez le test à côté du squelette du code. Initialement, vous pouvez écrire une implémentation non fonctionnelle (par exemple, lancer un Vous devez être pragmatique à ce sujet. Évidemment, vous ne pouvez pas compiler votre test tant que au moins, votre unité sous Test compile, vous devez donc faire une quantité minimale de travail de mise en œuvre aux côtés de votre test. P>
Départ Ceci récent DR DOBBS Editor , qui discute exactement de ce point et le rôle du pragmatisme autour de cela, en particulier par les moves de cette pratique (Kent Beck et al em>) p>
Un principe clé de TDD est que vous n'écrivez aucun code sans première écriture
un test d'unité défaillant. Mais en fait, si vous parlez au principal
défenseurs de TDD (comme Kent Beck, qui popularisait la technique,
et Bob Martin, qui l'a appris à des milliers de développeurs), vous
Trouvez que les deux écrivent du code sans écrire des tests d'abord.
Ils ne le font pas - je devrais mettre l'accent sur ceci - voir ces moments comme des lacunes
de la foi, mais plutôt comme le pragmatisme nécessaire de l'intelligent
Développeur. P>
blockQuote> non-assistéeOrsetexception code>) et qui déclenchera une défaillance de test. Ensuite, vous vous échappiez la mise en œuvre jusqu'à ce que votre test passe enfin. P>
Comme vous l'avez dit "si vous parlez aux principaux défenseurs de TDD (comme Kent Beck, qui a popularisé la technique et Bob Martin, qui l'a enseigné à des milliers de développeurs), vous constatez que les deux écrivent du code sans écrire des tests premier." Pourriez-vous diriger des méto-exemples où ils ont écrit du code sans écrire des tests en premier. Essentiellement je veux savoir où dessiner la ligne
J'espère que ce que cela signifie, c'est que vous écrivez simplement des méthodes vides avec des signatures droites p> blockQuote>
oui. Et avec la plupart des IDes modernes, si vous écrivez un nom de méthode qui n'existe pas dans votre test, ils créeront un talon pour vous. P>
Dites à l'approche TDD que j'ai besoin d'obtenir la liste des clients. Quelle est la bonne façon de procéder? p> blockQuote>
Votre exemple n'est pas tout à fait là. Vous souhaitez tester un tableau de 0-Longueur, mais vous le retournez déjà: vous devez d'abord retourner
null code>, le test échouera évidemment. P>
modifier ensuite la méthode afin que le test réussisse. P>
Créez ensuite une méthode de test pour le client Ajout. Test échoue. Répare le. Rincer. Répéter. P>
Ainsi, fondamentalement:
avec TDD, vous démarrez et écrivez le test que vous savez échouera, puis corrigez votre code afin qu'ils fonctionnent P>. P>. Recommandé Lecture . P>
Ma compréhension révisée avec ceci est, disons que je m'attends à 10 enregistrements dans ma base de données, puis je m'attendrais à ce que le test de test vérifie la taille de 10 (dès que je mettez en œuvre ma méthode réelle, elle devrait fixer automatiquement le boîtier de test). Droit?
Oui. Un danger, bien sûr, est de tester 2, 3, etc. Vous devez tester le comportement. En outre, Mocks sera d'une grande aide ici. Par exemple, vous pouvez créer une maquette de votre classe de données qui retourne 10 objets et teste le comportement de votre classe avec cela. Par expérience personnelle, je trouve que plus j'utilise TDD (à peu près toujours maintenant), plus je peux concevoir des choses facilement, ce qui est un bonus ...
Si cela peut vous aider, pour le moment, j'écris une classe simple à tester, commettez ici < / a>. Après cela, je vais tester des valeurs nulles, alors que la valeur est effectivement ajoutée. En ce moment, le seul test échoue.
Je pense aller écrire le test en premier, réfléchissez à la signature de la fonction tout en écrivant le test. P>
C'est la même chose que d'écrire la signature, puis de rédiger le test, mais lors de l'inventant la signature de la fonction lors de la rédaction du test, vous serez utile car vous aurez toutes les informations sur la responsabilité de la fonction et vous pourrez venir avec la bonne signature. P>