it-praxisportal/09_eigene_unit_tests_schreiben
2026-08-29 14:53:43 +02:00
..
aufgabe.py Implementiere Kapitel 08 bis 14 (Operator Overloading, Unit Testing, Vererbung, Polymorphie, Exceptions, Persistenz, Tkinter GUI) 2026-08-29 14:26:27 +02:00
index.html Integriere Gamification-Persistenz & Hooks in alle 27 Kapitel (test_aufgabe.py & index.html) 2026-08-29 14:53:43 +02:00
musterloesung.py Implementiere Kapitel 08 bis 14 (Operator Overloading, Unit Testing, Vererbung, Polymorphie, Exceptions, Persistenz, Tkinter GUI) 2026-08-29 14:26:27 +02:00
README.md Implementiere Kapitel 08 bis 14 (Operator Overloading, Unit Testing, Vererbung, Polymorphie, Exceptions, Persistenz, Tkinter GUI) 2026-08-29 14:26:27 +02:00
test_aufgabe.py Integriere Gamification-Persistenz & Hooks in alle 27 Kapitel (test_aufgabe.py & index.html) 2026-08-29 14:53:43 +02:00

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

  1. Warum automatische Unit Tests?
    • Nie wieder manuelle print()-Ausgaben kontrollieren.
    • Sofortiges Feedback bei Fehlern (Regression Prevention).
    • Saubere Schnittstellendokumentation.
  2. 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.
  3. Die wichtigsten Assert-Methoden:
    • self.assertEqual(a, b): Prüft a == 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 wie ValueError, ZeroDivisionError) geworfen werden.
  4. 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 Klassen Taschenrechner und Bankkonto sowie 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