J'ai lu et résumé le chapitre 21 du livre TDD (*), alors prenez-en note. J'espère que cela sera utile pour ceux qui liront le livre TDD et sont "Que voulez-vous dire ici?" ※https://www.amazon.co.jp/dp/B077D2L69C/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1
Je veux que tearDown soit appelé même si la méthode de test échoue. Cependant, si tearDown est appelé sans tomber quand il échoue, il ne tombera pas et vous ne saurez pas où il a échoué. Vous devez donc attraper l'exception là où elle a échoué.
L'ordre dans lequel les tests sont écrits est important, et au moment de choisir le prochain test à écrire, j'en choisis un qui "a une certaine conscience" ou "donne confiance quand il bouge". → "Si vous êtes un peu inquiet à propos du test que vous essayez d'écrire, subdivisez la cible du test (TDD est divisé en étapes plus petites) et écrivez le test avec un objectif clair et l'étape suivante en premier. Je pensais que je voulais dire: «Je devrais le proposer», mais honnêtement, je ne le comprends toujours pas bien. .. Je vais le mettre à jour si je le comprends en lisant.
Si un test fonctionne, mais que vous ne pouvez toujours pas écrire le test suivant, faites deux pas en arrière.
(Il y a 2 étapes) Pensez au test et écrivez (le test que vous avez écrit une étape auparavant) ↑ (1 étape avant) Le test fonctionne (le test que j'ai écrit une étape avant) ↑ (Actuellement) Réflexion sur le prochain test et écriture → La main pour écrire le test s'est arrêtée
Je pense que cela signifie revenir à l'étape de «penser au test que j'avais déjà écrit» il y a deux étapes et réfléchir à nouveau.
Tout d'abord, je veux obtenir un résultat d'exécution semblable à un outil de test avec l'impression "du nombre d'exécutions de test, du nombre d'échecs et des détails des échecs". Cependant, il est difficile pour le framework de rapporter automatiquement tous les résultats des tests (quelle méthode a échoué pour quelle raison, etc.) (les étapes sont trop importantes).
Dans un premier temps, pourquoi ne pas renvoyer un TestResult qui enregistre les résultats lors de l'exécution d'un test? Avec cela, un seul résultat peut être traité, mais il est important de commencer par un si petit pas.
[Mise à jour source] Ajout de la méthode de test TesyResult et du code d'exécution du test.
Ensuite, mise en œuvre temporaire.
[Mise à jour de la source] Ajoutez la classe TestResult et créez une méthode de résumé qui renvoie le contenu du résultat (car il s'agit d'une implémentation temporaire, la valeur de retour est une chaîne de caractères solide). Méthode d'exécution mise à jour pour renvoyer TestResult.
Maintenant que le test a réussi, rapprochez la méthode de résumé de la classe TestResult temporairement implémentée de la réalité.
[Mise à jour source] Affectez 1 à runCount (nombre d'exécutions de test) dans le constructeur TestResult. (Tout d'abord, procédez par petites étapes.) Rendre runCount affiché dans la partie d'affichage de "Nombre d'exécutions de test" de la valeur de retour qui était une chaîne de caractères solide.
RunCount, qui est une constante pour le moment, doit être augmenté à chaque exécution de test, alors modifiez-le.
[Mise à jour source] Ajout de la méthode testStarted pour définir la valeur initiale de runCount sur 0 et incrémenter chaque exécution de test.
Appelez la méthode testStarted que vous venez de créer dans la méthode d'exécution.
[Mise à jour source] Exécutez la méthode testStarted sur l'instance TestResult générée dans la méthode d'exécution et incrémentez runCount.
Je veux rendre réel un autre nombre solide (le nombre d'échecs). Écrivons un test.
[Mise à jour source] Ajout d'un test (testFailedResult) lorsque le test échoue. Ajout d'une méthode d'échec de test (déclencher une exception) (testBrokenMethod) qui est testée dans ↑.
Lorsque j'exécute le test, il échoue car je n'ai pas détecté l '"exception de levée". Je veux attraper et enregistrer l'exception, mais mettons-la sur l'étagère (car les étapes sont grandes) et ajoutons un test plus petit.
Aller au chapitre 22 >>
Recommended Posts