Integration-Testing mit Docker und Testcontainers (Kevin Wittek)

JUG Mainz
JUG Mainz
Öffentliche Gruppe

Abgesagt

Online-Event

Dieses Event ist vorbei

Details

Integration-Tests sind für viele ein notwendiges Übel. Manuelle Installation und Konfiguration der lokalen Testumgebung oder eine Testinfrastruktur, die sich mehrere Entwickler und Teams teilen müssen sorgen dafür, dass viele Entwickler versuchen auf aufwändige Integration-Tests zu verzichten. Dabei können uns Integration-Tests allerdings ein Vertrauen in unseren Code und die Integration mit externen System liefern, der weit über die Möglichkeiten von Unit-Tests hinausgeht.

Container-Technologien wie Docker ermöglichen es uns, unser bisheriges Verhältnis zu Integration-Tests, als Teil des Entwicklungsprozesses, grundlegend zu hinterfragen. Dank Docker haben wir die Möglichkeit unsere komplette Test-Suite bestehend aus Unit-, Integration- und Acceptance-Tests, direkt aus unserem Code-Repository starten. Die dafür benötigte Infrastruktur beschreiben direkt als Code.

Zu diesem Zweck werden wir uns die Testcontainers Java-Library anschauen. Diese ermöglicht es uns, die für unsere Tests benötigten Container direkt als Teil unserer JUnit-Tests zu beschreiben. Mithilfe von Testcontainers werden wir lernen, wie wir Integration-Tests für verschiedene Persistenztechnologien (RDBMS, NoSQL) schreiben, Datenbankmigrationen testen und die Integration mit externen REST-Services sicherstellen. Darüber hinaus werden wir allerdings noch einen Schritt weitergehen und komplette Acceptance-Tests für unsere Microservice-Architektur schreiben, in dem wir den speziellen Testcontainers-Support zusammen mit den Werkzeugen Docker-Compose und Selenium verwenden.

Und obwohl Testcontainers eine Java-Library ist werden wir auch sehen, wie wir Anwendungen in anderen Sprachen mithilfe von Testcontainers Blackbox-Testen können.

Bio:
Testcontainers Co-Maintainer und aktives Mitglied der Java- und Open-Source-Community. Oracle Groundbreaker Ambassador. Softwerker und Testing-Fan. Glaubt an Extreme Programming als eine der besten agilen Methoden. Schreibt gerne MATLAB-Programme, um seine Frau bei der Durchführung von verhaltenswissenschaftlichen Experimenten mit Tauben zu unterstützen. Spielt E-Gitarre und ist in seinem zweiten Leben Musiker.
Nach langjähriger Tätigkeit in der Industrie als Softwareentwickler promoviert Kevin aktuell zum Thema Verifikation von Smart Contracts und leitet das Blockchain Research Lab am Institut für Internet-Sicherheit in Gelsenkirchen an der Westfälischen Hochschule.