Unit-Test (auch Komponenten- oder Modultest) prüft eine einzelne, klar abgegrenzte Einheit des Codes — typischerweise eine Funktion, Methode oder Klasse — isoliert vom Rest des Systems. Unit-Tests sind die unterste und zahlenmäßig größte Stufe der Testpyramide: viele schnelle, kleine Tests bilden das Fundament.
Was einen Unit-Test ausmacht
- Isolation: Abhängigkeiten wie Datenbanken, Dateisysteme oder Netzwerk werden durch Test-Doubles ersetzt — Stubs liefern feste Antworten, Mocks prüfen zusätzlich, ob bestimmte Aufrufe stattfanden.
- Geschwindigkeit: Ein einzelner Unit-Test läuft in Millisekunden. Eine große Suite bleibt dadurch in der Continuous-Integration-Pipeline (CI/CD) praktikabel.
- AAA-Muster: Arrange (Testdaten vorbereiten), Act (Code ausführen), Assert (Ergebnis prüfen) — die gängige Struktur eines Testfalls.
- FIRST-Prinzipien: Tests sollen Fast (schnell), Isolated, Repeatable, Self-verifying und Timely (zeitnah zum Code) sein.
Typische Frameworks
# Python (pytest)
def test_addiere():
assert addiere(2, 3) == 5
- Java: JUnit · Python: pytest · JavaScript: Jest · .NET: NUnit · PHP: PHPUnit
Abgrenzung
Ein Unit-Test findet Logik- und Randfallfehler innerhalb einer Einheit. Fehler im Zusammenspiel mehrerer Module deckt erst der Integrationstest auf; ob eine Änderung Altfunktion zerstört hat, prüft der Regressionstest.
Verwandte Grundlagen: Testen (Überblick), Debugging, Bug, Code Review.