Richtige Integrationstests mit Containern
Wie macht man Integrationstests mit Datenbanken?
* Mocking ist keine Option, da man das tatsächliche System testen möchte.
* In-Memory-Datenbanken existieren entweder nicht oder verhalten sich zu unterschiedlich.
* Die Datenbank selbst ist für Tests schwierig zu verwalten und zu parallelisieren.
Was sind mögliche Lösungen? Entweder eine Embedded-Implementierung oder Container, speziell Testcontainer und das Docker-Maven-Plugin. Aus den Tests können leichtgewichtige, wegwerfbare Instanzen des jeweiligen Datenbanksystems gestartet werden.
Dieser Vortrag zeigt praktische Beispiele sowohl für gut als auch weniger gut funktionierende Ansätze und wie man sie konkret implementiert.
Vorkenntnisse
Unit- und Integration-Testing
Lernziele
* Warum benötigt man Integrationstests?
* Wieso sind Mocks, die eigentliche Datenbank und In-Memory-Implementierungen keine Lösung?
* Welche Embedded-Datenbanken stehen zur Verfügung?
* Wie arbeitet man mit Testcontainern und dem Docker-Maven-Plugin?