PyUnit-Tutorial: Python Unit-Test-Framework (mit Beispiel)
Was ist Unit Testing?
Unit Tests in Python wird durchgefĂŒhrt, um Fehler frĂŒhzeitig in der Entwicklungsphase der Anwendung zu erkennen, wenn Fehler seltener auftreten und ihre Behebung kostengĂŒnstiger ist.
Ein Unit-Test ist ein Test auf Skript-Code-Ebene, der in Python um eine kleine âEinheitâ der FunktionalitĂ€t zu ĂŒberprĂŒfen. Unit-Test ist ein objektorientiertes Framework, das auf Testvorrichtungen basiert.
Python Unit-Testtechniken
Python Beim Unit-Testing geht es hauptsĂ€chlich darum, ein bestimmtes Modul zu testen, ohne auf abhĂ€ngigen Code zuzugreifen. Entwickler können Techniken wie Stubs und Mocks verwenden, um Code in âEinheitenâ aufzuteilen und Unit-Level-Tests fĂŒr die einzelnen Teile durchzufĂŒhren.
- Testgetriebene Entwicklung TDD: Unit-Tests sollten zusammen mit den Python, und dafĂŒr verwenden Entwickler die Methode der testgetriebenen Entwicklung. Bei der TDD-Methode entwerfen Sie zuerst Python FĂŒhren Sie Unit-Tests durch und erst dann fahren Sie mit dem Schreiben des Codes fort, der diese Funktion implementiert.
-
Stubs und Mocks: Dabei handelt es sich um zwei Haupttechniken, die gefĂ€lschte Methoden simulieren, die getestet werden. A Stummel wird verwendet, um einige AbhĂ€ngigkeiten auszufĂŒllen, die fĂŒr die ordnungsgemĂ€Ăe AusfĂŒhrung des Komponententests erforderlich sind. A Spotten Auf der anderen Seite handelt es sich um ein gefĂ€lschtes Objekt, das die Tests ausfĂŒhrt, bei denen wir âassertierenâ setzen.
Die Absichten beider Methoden sind dieselben: Sie eliminieren das Testen aller AbhÀngigkeiten einer Klasse oder Funktion.
Python Framework fĂŒr Unit-Tests
Um den Unit-Test-Prozess zu vereinfachen und die QualitÀt Ihres Projekts zu verbessern, wird empfohlen, Python Das Unit-Testing-Framework umfasst
-
PyUnit: PyUnit unterstĂŒtzt Fixtures, TestfĂ€lle, Testsuiten und einen Test Runner zum automatisierten Testen des Codes. In PyUnit können Sie TestfĂ€lle in Suiten mit denselben Vorrichtungen organisieren
-
Nase: Die integrierten Plug-Ins von Nose helfen Ihnen bei der Ausgabeerfassung, Codeabdeckung, Doctests usw. Die Nose-Syntax ist ziemlich einfach und reduziert die HĂŒrden beim Schreiben von Tests. Es erweitert Python unittest, um das Testen zu vereinfachen.
- Doktortest: Das Doctest-Testskript befindet sich in der Dokumentzeichenfolge mit einer kleinen Funktion am Ende der Datei. Mit Doctest können Sie Ihren Code testen, indem Sie in der Dokumentation enthaltene Beispiele ausfĂŒhren und ĂŒberprĂŒfen, ob sie die erwarteten Ergebnisse lieferten. Der Anwendungsfall von doctest ist weniger detailliert und berĂŒcksichtigt keine SonderfĂ€lle. Sie eignen sich als aussagekrĂ€ftige Dokumentation des Hauptanwendungsfalls eines Moduls und seiner Komponenten.
Unit-Tests mit PyUnit
Pyunit ist ein Python Hafen von JUnit. Als Teil von Pyunit gibt es im Unittest-Modul fĂŒnf SchlĂŒsselklassen.
- Testfallklasse: Die TestCase-Klasse enthĂ€lt die Testroutinen und liefert Hooks zum Erstellen jeder Routine und zum anschlieĂenden AufrĂ€umen
- TestSuite-Klasse: Es dient als Sammelcontainer und kann mehrere Testcase-Objekte und mehrere Testsuite-Objekte enthalten
- TestLoader-Klasse: Diese Klasse lÀdt TestfÀlle und Suiten, die lokal oder aus einer externen Datei definiert sind. Es gibt Testsuite-Objekte aus, die diese Suiten und FÀlle besitzen
- TextTestRunner-Klasse: Zur AusfĂŒhrung der Tests wird eine Standardplattform zur AusfĂŒhrung der Tests bereitgestellt
- Die TestResults-Klasse: Es bietet einen StandardbehĂ€lter fĂŒr die Testergebnisse
Entwerfen eines Testfalls fĂŒr Python Testen mit PyUnit
Ein Unit-Test stellt eine Basisklasse, einen Testfall, bereit, der zum Erstellen neuer TestfĂ€lle verwendet werden kann. FĂŒr den Entwurf des Testfalls werden drei MethodensĂ€tze verwendet
unittest.TestCase
setUp() teardown() skipTest(aMesg:string) fail(aMesg:string) id():string shortDescription():string
Im ersten Satz befinden sich die Pre- und Post-Test-Haken. Die Methode setup() beginnt vor jeder Testroutine, die Methode teardown() nach der Routine.
Der zweite Methodensatz steuert die TestausfĂŒhrung. Beide Methoden verwenden eine Nachrichtenzeichenfolge als Eingabe und brechen einen laufenden Test ab. Aber die Methode âskiptest()â bricht den aktuellen Test ab, wĂ€hrend die Methode âfail()â ihn vollstĂ€ndig fehlschlĂ€gt.
Die letzte bzw. dritte Methode dient der Bestimmung des Tests. Die Methode id() gibt einen String zurĂŒck, der aus dem Namen des Testfallobjekts und der Testroutine besteht. Und die Methode shortDescription() gibt den Docstr-Kommentar zu Beginn jeder Testroutine zurĂŒck.
Vorteile der Verwendung Python Unit-Test
- Es hilft Ihnen, Fehler frĂŒhzeitig im Entwicklungszyklus zu erkennen
- Es hilft Ihnen, bessere Programme zu schreiben
- Es lÀsst sich problemlos mit anderen Testmethoden und -tools synchronisieren
- Es wird viel weniger Fehler geben
- Es ist einfacher, sie in Zukunft mit sehr geringeren Konsequenzen zu Àndern



