Containers for Real Integration Tests

A presentation at Percona Live Europe in in Frankfurt, Germany by Philipp Krenn

How are you doing integration tests with your datastore?

  • Mocking is not an option since you want to test the actual system.
  • There are some in-memory implementations, like H2 or HSQLDB for relational databases, but there are still subtle differences to your production system and not all datastores have in-memory cousins.
  • Using the actual datastore in your tests is possible, but managing it, running tests in parallel,... is far from ideal.

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.