Richtige Integration-Tests mit Testcontainern

A presentation at Java Forum Nord in in Hanover, Germany by Philipp Krenn

Wie macht man richtig Integrations-Tests mit Datenbanken? Mocking ist oft keine Option, da man das tatsächliche System testen möchte. Es gibt einige In-Memory-Implementierungen, wie H2 oder HSQLDB für relationale Datenbanken, aber es gibt immer noch kleinere und größere Unterschiede zum jeweiligen Produktionssystem und nicht alle Datenspeicher haben In-Memory-Geschwister. Die Verwendung des eigentlichen Datenspeichers in Tests ist möglich, aber es ist alles andere als ideal diese zu verwalten, Tests parallel auszuführen,...

Was ist also die Lösung? Es gibt einen sehr sauberen Ansatz basierend auf Containern: Testcontainers. Aus den Tests können leichtgewichtige, wegwerfbare Instanz des jeweiligen Datenbanksystems gestartet werden. Dieser Vortrag zeigt ein praktisches Beispiel, nachdem wir zuerst die Theorie dahinter besprochen haben.

Resources

The following resources were mentioned during the presentation or are useful additional information.

  • GitHub: Demo Code

    Demoing multiple approaches of integration tests with Elasticsearch

Buzz and feedback

Here’s what was said about this presentation on social media.