Containers for Real Integration Tests

How are you testing with your database?

  • Mocking is not an option since you want to test the actual system.
  • In-memory DBs, 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.