Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Einführung in das Testen mit Python | Testing with unittest and pytest
Python Fortgeschrittene Konzepte

Einführung in das Testen mit Python

Swipe um das Menü anzuzeigen

Tests sind eine grundlegende Praxis in der Softwareentwicklung, um sicherzustellen, dass der Code wie erwartet funktioniert und auch bei Weiterentwicklungen zuverlässig bleibt. Automatisierte Tests ermöglichen es, den Code automatisch zu überprüfen, anstatt sich auf zeitaufwändige und fehleranfällige manuelle Prüfungen zu verlassen. Durch das Schreiben von Tests können Änderungen, die bestehende Funktionalitäten beeinträchtigen, schnell erkannt werden, wodurch eine sichere Umstrukturierung oder Erweiterung des Codes möglich ist.

Eine der beliebtesten Methoden zum Testen ist die testgetriebene Entwicklung (TDD). Bei TDD beginnt man damit, einen Test zu schreiben, der ein gewünschtes Verhalten oder eine Funktion beschreibt, bevor der eigentliche Code implementiert wird. Dieser Ansatz fördert ein sorgfältiges Nachdenken über Anforderungen und Sonderfälle im Voraus und führt zu saubererem und besser wartbarem Code. Nach dem Schreiben des Tests wird der minimal notwendige Code implementiert, um den Test zu bestehen. Anschließend wird der Code zur Verbesserung der Lesbarkeit oder Effizienz überarbeitet, wobei die Tests erneut ausgeführt werden, um sicherzustellen, dass nichts beschädigt wurde. Dieser Zyklus – Test schreiben, Code schreiben, Refaktorieren – unterstützt den schrittweisen Aufbau robuster Software.

Tests dienen nicht nur dazu, Fehler zu finden. Sie fungieren auch als lebendige Dokumentation des Codes und erleichtern es anderen (und dem eigenen zukünftigen Ich), die Funktionsweise des Codes nachzuvollziehen. Automatisierte Tests sind besonders wertvoll bei der Zusammenarbeit im Team oder bei großen Projekten, da sie ein Sicherheitsnetz bieten, das zu Experimenten und zuversichtlichen Änderungen am Code ermutigt.

12345
# A function to add two numbers def add(a, b): return a + b print(add(2, 3))
# A basic test case for the add function using unittest
import unittest

class TestAddFunction(unittest.TestCase):
    def test_add_positive_numbers(self):
        self.assertEqual(add(2, 3), 5)

    def test_add_zero(self):
        self.assertEqual(add(0, 5), 5)

    def test_add_negative_numbers(self):
        self.assertEqual(add(-1, -1), -2)

Der bereitgestellte Code definiert eine Testfallklasse namens TestAddFunction unter Verwendung des in Python integrierten unittest-Frameworks. Innerhalb dieser Klasse befinden sich drei Testmethoden:

  • test_add_positive_numbers prüft, ob der Aufruf von add(2, 3) den Wert 5 zurückgibt;
  • test_add_zero überprüft, ob das Addieren von Null und Fünf mit add(0, 5) den Wert 5 ergibt;
  • test_add_negative_numbers bestätigt, dass das Addieren von zwei negativen Zahlen, add(-1, -1), den Wert -2 liefert.

Jede Testmethode verwendet self.assertEqual, um das tatsächliche Ergebnis der Funktion add mit dem erwarteten Wert zu vergleichen. Falls ein Test fehlschlägt, meldet das Framework dies und hilft so, Fehler frühzeitig zu erkennen.

question mark

Welcher der folgenden Punkte ist ein wesentlicher Vorteil von automatisierten Tests in der Python-Entwicklung?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 1

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 5. Kapitel 1
some-alt