Python-Tests |. Unit-Tests in Python erstellen

王林
Freigeben: 2023-04-11 19:37:15
nach vorne
1757 Leute haben es durchsucht

Wenn Sie als Entwickler oder Programmierer Code schreiben, wird eines normalerweise übersehen: das Testen. Tests sind Teil der Entwicklung und Sie sollten Ihre Anwendungen gründlich testen, um sicherzustellen, dass sie die erforderliche Funktionalität erfüllen.

Beginnen wir damit, warum wir testen müssen:

1. Reduzieren Sie den Bedarf an manuellen Tests.

Da Testfälle vorab geschrieben sind, gibt es keinen wirklichen Grund mehr, manuelle Tests durchzuführen. Meistens, insbesondere bei großen Anwendungen, müssen Sie viele Phasen in Ihrer Software ausführen, um zu testen, ob eine Funktion funktioniert. Dies kann durch Tests vermieden werden. Stellen Sie sich vor, Sie müssten jedes Mal, wenn Sie Ihre Anwendung ausführen, eine bestimmte Eingabe verwenden. Beim Test wird dieser bei jedem Durchlauf automatisch eingetragen.

2. Ermöglicht eine bessere Codestruktur

Das Erstellen von Testfällen vor der Entwicklung ist eine bewährte Vorgehensweise. Dies zwingt Sie dazu, über das System als Ganzes nachzudenken, bevor Sie mit der Entwicklung beginnen.

3. Ermöglicht auf lange Sicht schnellere Tests

Während des Codierens kann sich die Implementierung der Funktion ändern, aber die Ausgabe bleibt gleich. Anstatt eine Funktion manuell zu testen, wenn sich ihre Implementierung ändert, können Sie einfach bestimmte Testfälle implementieren, die mehrere Testfälle gleichzeitig ausführen können.

Erste Schritte

Wir werden uns auf eine bestimmte Art von Tests konzentrieren: Unit-Tests. Diese spezielle Art von Test wird verwendet, um kleine Codeeinheiten wie Funktionen oder Klassen zu testen.

Um Unit-Tests zu erstellen, verwenden wir die Python-Standardbibliothek Unittest. Diese Methode zum Erstellen von Testfällen verwendet OOP (Object Oriented Programming), indem eine Klasse erstellt wird, die alle Testfälle enthält. Dadurch können wir alle Testfälle in der Klasse gleichzeitig ausführen.

Hinweis: Sie können jede IDE oder jeden Texteditor verwenden, mit dem Sie vertraut sind (die Standard-Python-IDE kann verwendet werden). Dazu werde ich die Verwendung von Visual Studio Code mit der Python-Erweiterung demonstrieren.

Wir werden zuerst unsere Unit-Test-Bibliothek importieren:

import unittest
Nach dem Login kopieren

Jetzt machen wir unsere Klassendeklaration:

class TestingClass(unittest.TestCase):
Nach dem Login kopieren

Hinweis (unittest.TestCase) ist Vererbung in Python. Stellen Sie der Klasse Funktionalität zur Verfügung.

Fügen Sie die erste Funktion in der Klasse hinzu:

Python-Tests |. Unit-Tests in Python erstellen

self.assertEqual ist eine Methode, die von der zuvor geerbten Klasse (unittest.TestCase) bereitgestellt wird. Diese Methode testet, ob zwei Variablen den gleichen Wert haben.

Fügen Sie unseren Testläufer hinzu. Dies ist, was unseren Unit-Test zum Laufen bringt:

unittest.main()
Nach dem Login kopieren

So sollte der fertige Code aussehen:

Python-Tests |. Unit-Tests in Python erstellen

Der obige Code zeigt den Test, ob 9 + 1 gleich 11 ist. Wenn Sie grundlegende Mathematikkenntnisse haben, sollten Sie wissen, dass 9+1 = 10. Daher wird dieser Testfall fehlschlagen.

Ausgabe:

Python-Tests |. Unit-Tests in Python erstellen

Das hätten Sie erraten sollen. FAIL!

Die Lösung ist einfach. Ändern Sie den Code wie folgt:

test_var = 9 + 2
Nach dem Login kopieren

Python-Tests |. Unit-Tests in Python erstellen

Ausgabe:

Python-Tests |. Unit-Tests in Python erstellen

Externe Funktionen testen

Für Tests außerhalb einer Funktion ist das vorherige Beispiel möglicherweise nicht realistisch. Ersetzen wir den test_var-Wert durch den Wert einer Funktion. Wir werden oben in der Datei eine Funktionsdeklaration hinzufügen.

Python-Tests |. Unit-Tests in Python erstellen

Diese Funktion addiert zwei Zahlen. Ersetzen Sie 9 + 2 durch den Funktionsaufruf add(9,2) und führen Sie den Code aus.

Python-Tests |. Unit-Tests in Python erstellen

Bisher haben wir nur einen Testfall implementiert. Jede Funktion/Methode in TestingClass (in diesem Fall sind beide gleich) stellt einen Testfall dar.

Fügen wir einen weiteren Testfall test_multiple_num_addition hinzu.

Python-Tests |. Unit-Tests in Python erstellen

HINWEIS: Dem Namen aller erstellten Testfälle sollte das Wort „test“ vorangestellt werden, da der Testläufer es sonst nicht erkennt.

Ihr Code sollte so aussehen:

Python-Tests |. Unit-Tests in Python erstellen

Run:

Python-Tests |. Unit-Tests in Python erstellen

Dies wird offensichtlich fehlschlagen, da der Funktionsparameter nur zwei Parameter akzeptiert. Aber was ist, wenn wir wirklich mehr Zahlen hinzufügen möchten?

Dies kann durch eine Änderung an der Add-Funktion gelöst werden:

Python-Tests |. Unit-Tests in Python erstellen

Beachten Sie das Sternchen (*) links neben dem Werteparameter. Dadurch können Sie mehrere Parameter eingeben und Werte als Tupel speichern.

Code vor der Ausführung:

Python-Tests |. Unit-Tests in Python erstellen

Ausführung:

Python-Tests |. Unit-Tests in Python erstellen

Ausführung erfolgreich!

Das Platzieren eines Sternchens vor der Variablen des Funktionsparameters wird als Nicht-Schlüsselwortparameter bezeichnet.

Zusammenfassung

Der Versuch von Tests kann Ihrem Code zusätzliche Robustheit verleihen. Es kann auch die Art und Weise verändern, wie Sie entwickeln. Eine Testmentalität gewährleistet weniger Fehler in der Produktion und weniger sich wiederholende manuelle Tests während der Entwicklung.

*Originallink: https://medium.com/swlh/python-testing-a8156d022eef

Das obige ist der detaillierte Inhalt vonPython-Tests |. Unit-Tests in Python erstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:51cto.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage