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.