Containers for Real Integration Tests

A presentation at NDC Porto in in Porto, Portugal by Philipp Krenn

How are you testing with your database?

  • Mocking is not an option since you want to test the actual system.
  • In-memory databases, like H2 or HSQLDB, have subtle differences and not all datastores have in-memory cousins.
  • Managing and running tests in parallel against the actual datastore is a pain.

So what is the solution? There are some very neat solutions based on containers, namely the Docker-Maven-Plugin and Testcontainers. From your tests you can start a lightweight, throwaway instance of your datastore and this talk will walk you through how to do that.

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.