Kursinhalt
Python Fortgeschrittene Konzepte
Python Fortgeschrittene Konzepte
Einführung in Unittest
Unittest ist Teil der Standardbibliothek von Python, was bedeutet, dass keine zusätzlichen Installationen erforderlich sind, um loszulegen. Es ist um das Konzept von Testfällen herum gestaltet, bei denen es sich um Python-Klassen handelt, die von der TestCase-Klasse des Frameworks abgeleitet sind. Unittest ist ein hervorragendes Werkzeug für alle, die ihre Testreise beginnen, da es Tests auf eine Weise strukturiert, die die Prinzipien der objektorientierten Programmierung widerspiegelt.
Die Struktur von Unittest
In Unittest ist jeder Test eine Methode innerhalb einer Unterklasse von unittest.TestCase
. Dieses Design fördert das Gruppieren verwandter Tests, was helfen kann, den Testcode logisch zu organisieren und lesbarer zu machen.
Schreiben eines Tests mit Unittest
Lassen Sie uns eine einfache Funktion testen, die den Durchschnitt von zwei Zahlen berechnet. Hier ist die Funktion, die wir testen möchten:
Erstellen eines Testfalls
Um einen Testfall zu erstellen, definieren Sie eine Klasse, die von unittest.TestCase
erbt. Innerhalb dieser Klasse können Sie dann Methoden definieren, um die Funktion calculate_average
zu testen.
- Zuerst
import
Sie das Unittest-Modul, das Teil der Standardbibliothek von Python ist; class TestCalculateAverage(unittest.TestCase)
erstellt einen neuen Testfall. Es erbt vonunittest.TestCase
, das die Testfunktionalität bereitstellt;- Jede Methode in der Klasse sollte mit
test_
beginnen; - Die Methoden verwenden spezifische assert-Anweisungen, um zu überprüfen, ob die Bedingung wahr ist.
Beispiel eines erfolgreichen Testergebnisses
Wenn alle Tests im Unittest erfolgreich sind, ist die Ausgabe unkompliziert und zeigt an, dass alle Tests erfolgreich ohne Fehler ausgeführt wurden. Hier ist ein Beispiel für einen erfolgreichen Testlauf:
Beispiel eines fehlgeschlagenen Testergebnisses
Wenn ein oder mehrere Tests fehlschlagen, liefert die Ausgabe Details zu den Fehlern, einschließlich welcher Tests fehlgeschlagen sind und warum. Hier ist ein Beispiel, wie es aussehen könnte, wenn ein Test fehlschlägt:
Diese Ausgabe beinhaltet:
..F
zeigt an, dass drei Tests ausgeführt wurden; die ersten beiden bestanden (dargestellt durch..
), und der dritte schlug fehl (F
);FAILED (failures=1)
zeigt, dass es einen Fehler unter den ausgeführten Tests gab;- Der detaillierte Fehlerbericht beginnt mit der Testkennung (
test_average_floats
) und der Klasse (TestCalculateAverage
). Er bietet einen Traceback zur Zeile in Ihrem Testcode, die den Fehler verursacht hat, und erklärt die Art des Assertion-Fehlers, einschließlich des erwarteten Wertes, des tatsächlichen Wertes und der akzeptablen Fehlermarge.
Danke für Ihr Feedback!