[PYTHON] [Test Driven Development (TDD)] Kapitel 21 Zusammenfassung

Überblick

Ich habe Kapitel 21 des TDD-Buches (*) gelesen und zusammengefasst, notieren Sie es sich also. Ich hoffe, es ist hilfreich für diejenigen, die das TDD-Buch lesen und sagen: "Was meinst du hier?" ※https://www.amazon.co.jp/dp/B077D2L69C/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1

Kapitel 21 Zusammenfassung

Verbleibendes TODO

Was ich als nächstes tun möchte

Ich möchte, dass tearDown auch dann aufgerufen wird, wenn die Testmethode fehlschlägt. Wenn tearDown jedoch aufgerufen wird, ohne zu fallen, wenn es fehlschlägt, fällt es nicht und Sie wissen nicht, wo es fehlgeschlagen ist. Sie müssen also die Ausnahme abfangen, bei der sie fehlgeschlagen ist.

Die Reihenfolge, in der die Tests geschrieben werden, ist wichtig, und wenn ich den nächsten zu schreibenden Test auswähle, wähle ich einen, der "ein gewisses Bewusstsein hat" oder "Vertrauen schafft, wenn er sich bewegt". → "Wenn Sie sich ein wenig Sorgen über den Test machen, den Sie schreiben möchten, unterteilen Sie das Testziel (TDD ist in kleinere Schritte unterteilt) und schreiben Sie den Test mit einem klaren Zweck und dem nächsten Schritt zuerst. Ich dachte, ich wollte sagen: "Ich sollte es bewegen", aber ehrlich gesagt verstehe ich es immer noch nicht gut. .. Ich werde es aktualisieren, wenn ich es beim Lesen verstehe.

Wenn ein Test funktioniert, Sie aber den nächsten Test immer noch nicht schreiben können, gehen Sie zwei Schritte zurück.

(Vor 2 Schritten) Denken Sie an den Test und schreiben Sie (den Test, den Sie einen Schritt zuvor geschrieben haben) ↑ (1 Schritt vorher) Der Test funktioniert (der Test, den ich einen Schritt zuvor geschrieben habe) ↑ (Derzeit) Über den nächsten Test nachdenken und schreiben → Die Hand zum Schreiben des Tests ist stehen geblieben

Ich denke, es bedeutet, zu dem Schritt zurückzukehren, vor zwei Schritten "über den Test nachzudenken, den ich zuvor geschrieben habe" und erneut nachzudenken.

Fügen Sie einen Test für TesyResult hinzu

Zunächst möchte ich ein Testwerkzeug-ähnliches Ausführungsergebnis mit dem Gefühl erhalten, "die Anzahl der Testausführungen, die Anzahl der Fehler und die Details der Fehler". Es ist jedoch schwierig für das Framework, automatisch alle Testergebnisse zu melden (welche Methode aus welchem Grund fehlgeschlagen ist usw.) (Schritte sind zu umfangreich).

Warum nicht als erstes einen TestResult zurückgeben, der die Ergebnisse aufzeichnet, wenn ein Test ausgeführt wird? Damit kann nur ein Ergebnis verarbeitet werden, aber es ist wichtig, mit einem so kleinen Schritt zu beginnen.

[Quellenaktualisierung] TesyResult-Testmethode und Testausführungscode hinzugefügt.

Vorübergehende Umsetzung

Als nächstes vorübergehende Implementierung.

[Quellenaktualisierung] Fügen Sie die TestResult-Klasse hinzu und erstellen Sie eine Zusammenfassungsmethode, die den Ergebnisinhalt zurückgibt (da es sich um eine temporäre Implementierung handelt, ist der Rückgabewert eine feste Zeichenfolge). Die Ausführungsmethode wurde aktualisiert, um TestResult zurückzugeben.

Bringen Sie die temporäre Montage näher an die Realität ①

Nachdem der Test bestanden wurde, bringen Sie die Zusammenfassungsmethode der vorübergehend implementierten TestResult-Klasse näher an die Realität heran.

[Quellenaktualisierung] Weisen Sie runCount (Anzahl der Testausführungen) im TestResult-Konstruktor 1 zu. (Fahren Sie zunächst in kleinen Schritten fort.) Lassen Sie runCount im Anzeigeteil von "Anzahl der Testausführungen" des Rückgabewerts anzeigen, der eine feste Zeichenfolge war.

RunCount, das vorerst eine Konstante ist, sollte bei jeder Testausführung erhöht werden. Ändern Sie es daher.

[Quellenaktualisierung] TestStarted-Methode hinzugefügt, um den Anfangswert von runCount auf 0 zu setzen und jede Testausführung zu erhöhen.

Rufen Sie die testStarted-Methode auf, die Sie gerade in der run-Methode erstellt haben.

[Quellenaktualisierung] Führen Sie die testStarted-Methode für die in der run-Methode generierte TestResult-Instanz aus und erhöhen Sie runCount.

Bringen Sie die temporäre Halterung näher an die reale Sache ②

Ich möchte eine weitere feste Zahl (die Anzahl der Fehler) realisieren. Schreiben wir einen Test.

[Quellenaktualisierung] Ein Test (testFailedResult) wurde hinzugefügt, wenn der Test fehlschlägt. Es wurde eine Testfehlermethode (Ausnahme auslösen) (testBrokenMethod) hinzugefügt, die in ↑ getestet wird.

Verbleibendes TODO

Fügen wir einen kleinen Test hinzu

Wenn ich den Test ausführe, schlägt er fehl, weil ich die "Ausnahmebedingung" nicht abgefangen habe. Ich möchte die Ausnahme abfangen und aufzeichnen, aber lassen Sie uns sie ins Regal stellen (weil die Schritte groß sind) und einen kleineren Test hinzufügen.

Weiter mit Kapitel 22 >>

Recommended Posts

[Test Driven Development (TDD)] Kapitel 21 Zusammenfassung
Testgetriebene Entwicklung mit Django Teil 3
Tutorial für die testgetriebene Entwicklung (TDD) mit Flask-2-Dekorateuren
Testgetriebene Entwicklung mit Django Teil 6
Testgetriebene Entwicklung mit Django Teil 2
Tutorial für die testgetriebene Entwicklung (TDD) mit Flask-1 Test Client Edition
Testgetriebene Entwicklung mit Django Teil 1
Testgetriebene Entwicklung mit Django Teil 5
[Memo] Zusammenfassung des Testcodes
Zusammenfassung der Testmethode
[Django] Standard-Anmeldeformular testen [TDD]
Python Crawling & Scraping Kapitel 4 Zusammenfassung