Container Lab mit Java & Testcontainers | 11. - 12. Juli 2019, Essen

Unit-Tests sind gut und wichtig, aber ohne ordnungsgemäße Integrationstests, insbesondere wenn Du mit externen Ressourcen wie Datenbanken und anderen Diensten arbeitest, nicht ausreichend. Die Tests von Microservices und verteilten Anwendungen können bisher nicht immer in realen Produktionsumgebung durchgeführt werden. Container-Technologien sind heute in allen Bereichen der Software-Entwicklung im Einsatz, aber das Testen wird durch die Verteilung eine große Herausforderung.

Die Notwendigkeit von schwergewichtigen, manuellen Installationen oder einer Test-Infrastruktur die sich mehrere Entwickler und Teams teilen müssen ist deshalb oft noch eine Realität. Eine produktionsähnliche, portable und in Code beschriebene lokale Testumgebung ist allerdings ein logischer nächster Schritt. Dank Container-Technologien wie Docker können wir heutzutage eine komplette Test-Suite, bestehend aus Unit-, Integration- und Acceptance-Tests, direkt aus unserem Code-Repository starten. Anstatt diese Systemumgebungen mühsam mit einer Hand voll fragiler Bash-Skripte zu beschreiben, kann auf bestehende JUnit-Erfahrung zurückgegriffen werden, um die funktionsreiche Testcontainers Java-Bibliothek (https://github.com/testcontainers) einzusetzen.

Mithilfe von Testcontainers wirst Du lernen, wie Integration-Tests für verschiedene Persistenztechnologien (RDBMS, NoSQL) funktionieren. Du wirst Datenbankmigrationen testen und die Integration mit externen REST-Services sicher zustellen. Darüber hinaus werden wir im Lab noch einen Schritt weitergehen und komplette Acceptance-Tests für einen Spring Boot-Microservice schreiben, in dem wir den speziellen Testcontainers-Support für die Werkzeuge Docker-Compose und Selenium verwenden.

Dieses Lab vermittelt moderne Testverfahren für Java Microservices auf der Basis verschiedener Beispiele. Der Grad an Testabdeckungen von realen Services wird mit der verwendeten Methodik deutlich erhöht und die Umsetzung auf Basis von Containern vereinfacht.

Tickets

Additional Information