Integrationstests mit Docker und der Java-Bibliothek Testcontainers
Mit der Software Docker und der Java-Bibliothek Testcontainers lassen sich Container komfortabel in Integrationstests einsetzen.
- Kevin Wittek
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.
Abweichungen von der 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.
Das war die Leseprobe unseres heise-Plus-Artikels "Integrationstests mit Docker und der Java-Bibliothek Testcontainers". Mit einem heise-Plus-Abo können sie den ganzen Artikel lesen und anhören.