Unittests schreiben mit Python- Einführung in Testmethoden und TDD
Unittests schreiben mit Python: Einführung in Testmethoden und TDD
Ein praktischer Leitfaden zum Schreiben automatisierter Tests und zur sauberen Softwareentwicklung mit Testgetriebener Entwicklung
Inhaltsverzeichnis
Kapitel 1: Warum testen wir unseren Code?
- Vorteile automatisierter Tests
- Unterschied zwischen manuellem und automatisiertem Testen
- Einführung in das Test-Driven Development (TDD)
- Grundprinzipien: Test → Code → Refactor
Kapitel 2: Erste Schritte mit dem unittest-Modul
- Aufbau eines einfachen Tests
- unittest.TestCase-Klasse nutzen
- Testfunktionen definieren: test_*
- Testausgabe interpretieren
Kapitel 3: Testmethoden und Assertions
- Die wichtigsten Methoden: assertEqual, assertTrue, assertRaises, assertIn
- Unterschiede und Einsatzbereiche
- Best Practices für aussagekräftige Tests
- Mini-Projekt: Mathematische Funktionen testen
Kapitel 4: Setup und Teardown für Tests
- Die Methoden setUp() und tearDown() verstehen
- Gemeinsame Testvorbereitungen kapseln
- Datenbankverbindungen, Dateien oder Objekte vorbereiten
- Mini-Projekt: Vorbereitete Testumgebung mit Reset
Kapitel 5: Test-Suites und Test-Läufe organisieren
- Mehrere Tests zusammenfassen
- Mit unittest.main() arbeiten
- Automatisches Auffinden von Tests
- Testorganisation nach Modulen und Klassen
Kapitel 6: Fehlerfälle und Ausnahmen testen
- Erwartete Ausnahmen mit assertRaises
- Negativtests und Grenzwerte
- Mini-Projekt: Fehlerhafte Eingaben abfangen und testen
Kapitel 7: TDD in der Praxis
- Das Rote-Grün-Refactoring-Prinzip
- Schrittweise Entwicklung mit Testvorgabe
- Beispiel: Entwicklung einer Benutzerregistrierung mit TDD
- Tipps zum Umdenken beim TDD-Einstieg
Kapitel 8: Testabdeckung und Qualität
- Einführung in Code Coverage
- Tools wie coverage.py einsetzen
- Bedeutung von 100 % Testabdeckung
- Mini-Projekt: Testabdeckung analysieren und verbessern
Kapitel 9: Erweiterte Teststrategien
- Mocks und Stubs mit unittest.mock
- Abhängigkeiten isolieren
- Zeit, externe Dienste und APIs simulieren
- Mini-Projekt: API-Client mit Mocking testen
Kapitel 10: Integration in reale Projekte und CI/CD
- Tests als Teil des Entwicklungsprozesses
- Integration in Git-Workflows und CI-Tools (z. B. GitHub Actions)
- Fehlervermeidung durch Tests im Team
- Empfehlungen für nachhaltige Teststrategie
Anhang A: Übersicht der wichtigsten unittest-Methoden
- Kompakte Referenz: assertEqual, assertNotEqual, assertRaises, etc.
- Wann welche Methode nutzen
Anhang B: Vergleich unittest mit anderen Test-Frameworks
- Unterschiede zu pytest, doctest, nose
- Vor- und Nachteile von unittest
Anhang C: Übungsaufgaben mit Lösungen
- Eigene Funktionen testen
- Tests mit Setup und Fehlerfällen
- Tests mit mock und Testabdeckung prüfen
- Musterlösungen mit Kommentaren