2.1 KiB
2.1 KiB
Kapitel 09: Eigene Unit Tests schreiben & TDD 🧪
In diesem Kapitel lernst du, wie professionelle Software-Entwickler ihren Code mit automatischen Tests absichern und wie Test-Driven Development (TDD) funktioniert.
🎯 Was du lernst
- Warum automatische Unit Tests?
- Nie wieder manuelle
print()-Ausgaben kontrollieren. - Sofortiges Feedback bei Fehlern (Regression Prevention).
- Saubere Schnittstellendokumentation.
- Nie wieder manuelle
- Das
unittest-Modul in Python:- Eigene Testklassen erstellen:
class MeinTest(unittest.TestCase) - Jede Testmethode muss mit
test_beginnen (z.B.def test_add(self):). - Die
setUp(self)-Methode: Wird automatisch vor jedem einzelnen Test ausgeführt, um frische Testdaten bereitzustellen.
- Eigene Testklassen erstellen:
- Die wichtigsten Assert-Methoden:
self.assertEqual(a, b): Prüfta == b.self.assertAlmostEqual(a, b, places=2): Prüft Float-Rundung bei Kommazahlen.self.assertTrue(x)/self.assertFalse(x): Prüft Wahrheitswerte.self.assertIn(item, list)/self.assertNotIn(item, list): Prüft Enthaltensein.with self.assertRaises(FehlerTyp):: Prüft, ob erwartete Fehler (Exceptions wieValueError,ZeroDivisionError) geworfen werden.
- Test-Driven Development (TDD):
- 🔴 Red: Schreibe zuerst den Test (schlägt fehl).
- 🟢 Green: Schreibe den minimalen Code, der den Test besteht.
- 🔵 Refactor: Verbessere und säubere den Code ohne Angst vor Regressionen.
📁 Die Dateien in diesem Ordner
index.html: Ausführliche interaktive HTML-Erklärung mit Assert-Tabelle, visuellen Boxen & Tipps.aufgabe.py: Vorgegebene KlassenTaschenrechnerundBankkontosowie die Test-Klassen mit TODOs zum Selbstausfüllen.test_aufgabe.py: Der Metatest-Runner, der deine geschriebenen Unit Tests validiert (python3 test_aufgabe.py).musterloesung.py: Vollständig ausprogrammierte Testsuite.
🚀 Schnellstart
# 1. Bearbeite die Test-Klassen in aufgabe.py
# 2. Führe deine eigenen Tests aus:
python3 aufgabe.py
# 3. Validiere deine Tests mit dem Metatest-Skript:
python3 test_aufgabe.py