Kurzfassung
Integration Testing liegt in der Test Pyramid zwischen Unit Testing und End-to-End Testing und validiert die Interaktionen zwischen Komponenten wie Datenbanken, APIs, Message Queues und Microservices.
Was ist Integration Testing?
Während Unit Tests einzelne Funktionen isoliert prüfen, bestätigen Integration Tests, dass diese Funktionen korrekt mit realen oder nahezu realen Abhängigkeiten zusammenarbeiten. Ein typischer Integration Test könnte einen Datenbank-Container starten, Daten einfügen, Anwendungscode aufrufen und sicherstellen, dass das Ergebnis korrekt gespeichert wurde.
Integration Tests sind langsamer als Unit Tests, aber schneller und gezielter als vollständige End-to-End Tests. Sie erkennen Probleme, die nur an Grenzen auftreten: Serialisierungsfehler, Transaktionsbehandlung, Netzwerk-Timeouts oder falsch konfigurierte Service-Clients.
Tools wie Testcontainers ermöglichen es, in Integration Tests echte Datenbank- oder Messaging-Infrastruktur in Docker zu starten und Tests reproduzierbar zu halten.
Warum ist Integration Testing relevant?
- Grenzvalidierung: Erkennt Fehler in der Interaktion zwischen Komponenten, die Unit Tests nicht erkennen können
- Vertrauen ohne E2E-Kosten: Bietet hohes Vertrauen in die Komponentenintegration mit einem Bruchteil des E2E-Wartungsaufwands
- Microservices-Eignung: Unverzichtbar für die Vertragsvalidierung zwischen Services in verteilten Architekturen