[PYTHON] [Test Driven Development (TDD)] Chapitre 21 Résumé

Aperçu

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

Résumé du chapitre 21

TODO restant

Ce que je veux faire ensuite

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.

Ajouter un test pour TesyResult

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.

Mise en œuvre temporaire

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.

Rapprocher le montage temporaire de la réalité ①

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.

Rapprochez le support temporaire de la chose réelle ②

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 ↑.

TODO restant

Ajoutons un petit test

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

[Test Driven Development (TDD)] Chapitre 21 Résumé
Développement piloté par les tests avec Django Partie 3
Tutoriel pour faire du développement piloté par les tests (TDD) avec Flask-2 Decorators
Développement piloté par les tests avec Django Partie 6
Développement piloté par les tests avec Django Partie 2
Tutoriel pour faire du développement piloté par les tests (TDD) avec Flask-1 Test Client Edition
Développement piloté par les tests avec Django Partie 1
Développement piloté par les tests avec Django Partie 5
[Mémo] Résumé du code de test
Résumé de la méthode d'essai
[Django] Formulaire de connexion standard de test [TDD]
Python Crawling & Scraping Chapitre 4 Résumé