Workshop

Testcontainers

06. Oktober 2023 | 14:00 Uhr - 19:00 Uhr
JUGS / Oliver Böhm
JUGS / Oliver Böhm

Zur Anmeldung/Tickets

Bevor Docker und die Container-Technologie Einzug in unseren Entwickleralltag gehalten haben, war das Aufsetzen von Integration Test Umgebungen oft mühselig – Entwickler:innen verwenden Fake- und In-Memory-Datenbank-Implementierungen, andere Services wurden gemockt und in der Regel waren Umgebungen nicht Cross-Platform und mussten von Hand aufgesetzt werden. Doch dank Docker können wir unsere Testumgebung heutzutage schnell und reproduzierbar aufsetzen.

Schulungsinhalte

In diesem Workshop wollen wir Testcontainers vorstellen – eine weit verbreitete Open-Source Library, die es erlaubt, auf Basis von Docker Testumgebungen und Abhängigkeiten einfach und stabil zu initialisieren und diese auf Basis eines Infrastructure-as-Code Ansatzes direkt mit unserem Test-Code zu verbinden.

Wir werden Testcontainer-basierte Integrationstests zu einer existierenden Code-Basis hinzufügen (Spring-Boot dient hier als Grundlage) und wir werden sehen, wie wir Testcontainers dazu nutzen können, externe Dienste wie Datenbanken (PostgreSQL, Redis) und Event Streaming Systeme (Kafka) als Teil unserer Integration Tests zu initialisieren und zu verwenden. Und wir werden wir auch sehen, wie wir ein auf Docker-Compose basierendes Setup Schritt-für-Schritt zu Testcontainers migrieren können.

Ziel der Schulung

Nach der Schulung werden Teilnehmer dazu in der Lage sein, Testcontainers im Rahmen eigener Projekte zu nutzen, um so bessere und nützlichere Integrationstests zu schreiben, die in reproduzierbaren Testumgebungen ausgeführt werden können.

Zielgruppe

Java Entwickler mit grundlegender Erfahrung im Umgang mit Spring-Boot und automatisierten Tests. Erfahrung mit Docker ist hilfreich, aber keine strikte Voraussetzung.

Technische Anforderungen

Teilnehmer benötigen eine aktuelle Docker Installation (Docker Desktop auf Windows/Mac oder Docker auf Linux).

Dozent

Kevin Wittek / AtomicJar

Foto: von Kaique Rocha von Pexels