SIGS DATACOM Fachinformationen für IT-Professionals

SOFTWARE MEETS BUSINESS:
The Conference for Software Architecture
Munich, 03 - 07 February 2020

Sessionsdetails

Talk: Nmo 2
Date: Mon, 03.02.2020
Time: 18:30 - 20:00
cart

Testcontainers – Integrationstesten mit Docker leicht gemacht

Time: 18:30 - 20:00
Talk: Nmo 2

 

Testcontainers ist der Kleber, der Integrationstests mit Infrastruktur in Docker-Containern verbindet. Seit der Verfügbarkeit von Docker ist es leicht geworden, Datenbanken, Message Broker etc. bereitzustellen. Jetzt muss vor der Ausführung eines Tests nur noch der Container gestartet werden. Leider ein weiterer Schritt, der bedacht werden muss. Hier setzt Testcontainers an, indem der Container-Lifecycle direkt aus dem Test gesteuert wird. So wird nichts vergessen, die Grenzen sind hart abgesteckt und ans Aufräumen wurde auch gedacht.

Zielpublikum: Entwickler, Tester, Architekten
Voraussetzungen: Grundlegende Java- und Docker-Kenntnisse
Schwierigkeitsgrad: Fortgeschritten

Extended Abstract
Testcontainers ist der Kleber, der Integrationstests mit benötigter Infrastruktur in Docker-Containern verbindet. Seit der Verfügbarkeit von Docker ist es leicht geworden, unterschiedliche Datenbanken, Message Broker, Application Server etc. bereitzustellen. Die Registry erleichtert die Distribution. Notwendige Konfigurationen wurden in docker-compose oder dem Build-Tool erledigt. Jetzt muss vor der Ausführung eines Tests nur noch kurz der oder die Container gestartet werden. Leider ein weiterer Schritt, der bedacht bzw. ins Vorgehen eingebaut werden muss. Fast noch wichtiger als das Starten ist das Aufräumen, ansonsten müllt der Entwicklungsrechner oder CI-Server schnell voll! Hier setzt Testcontainers an, indem der Container-Lifecycle direkt aus dem Test gesteuert wird. So kann nichts vergessen werden, die Grenzen sind hart abgesteckt und ans Aufräumen wurde auch gedacht. Es gibt Adapter für alle gängigen Testframeworks. Falls mal etwas fehlen sollte, ist es relativ schnell geschrieben, da ein Container in zwei Zeilen Code erstellt und gestartet werden kann. Unsere Reise wird mit einem einfachen JDBC basierten Test beginnen, an dem auch die wichtigsten Komponenten erklärt werden, um dann Integrationsszenarien zum Beispiel mit Spring Boot vorzustellen.