Integrationstests mit Docker und der Java-Bibliothek Testcontainers

Mit der Software Docker und der Java-Bibliothek Testcontainers lassen sich Container komfortabel in Integrationstests einsetzen.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 1 Kommentar lesen
Testen mit Docker und Testcontainers
Lesezeit: 11 Min.
Von
  • Kevin Wittek
Inhaltsverzeichnis

Container begegnen vielen Teams bei der Einführung von Microservices häufig auf dem Weg zu DevOps-Praktiken und sind hauptsächlich aus Operations- und Delivery-Sicht interessant – aber auch, wenn es darum geht, Entwicklungs- und Testumgebungen robuster und konsistenter zu gestalten. Deshalb lohnt sich ein Blick darauf, wie sich mithilfe von Containern portable Integrationstestumgebungen definieren lassen. So erhalten Teams Integrationstests, die sie auf ihrem Entwicklungsrechner wie auf ihrem CI-Server ausführen können.

Die klassische Testpyramide ist vielen aus Studium und Literatur ein Begriff. Unten befindet sich ein großes Fundament aus Unit-Tests. Es folgt ein kleinerer Mittelteil aus Integrationstests und die Spitze besteht aus funktionalen End-to-End-Tests. Auch wenn diese Idee als Idealvorschlag dient, ist es erstaunlich, dass die eigentliche Definition und das Verständnis der einzelnen Schichten sehr unterschiedlich ausfällt. Für die Integrationstestebene kursieren oft andere Begriffe, darunter Komponententests oder Servicetests. Mit Akzeptanztests oder UI-Tests hingegen meinen viele funktionale Tests.

Die Testpyramide von Simon Brown ist eine auf das Testen von Microservices angepasste Version der klassischen Testpyramide.

Die Abgrenzung der einzelnen Ebenen untereinander ist ebenfalls nicht so klar wie vermutet. Was für den einen Entwickler noch ein Unit-Test ist, ist für den anderen schon längst ein Integrationstest. Vorerst haben sich dieses Bild und das dazugehörige Vokabular unveränderlich in das kollektive Bewusstsein der IT-Community eingebrannt. Vorstöße, von diesem Modell abzuweichen, wie Simon Browns Pyramide zu architektonisch ausgerichtetem Testen (Architecturally-aligned Testing Pyramid), fristen zumeist ein Exotendasein.