Integration testing with Docker and Testcontainers

Unit testing is fine, but without proper integration testing, especially if you work with external resources like databases and other services, you might not know how your application will actually behave once it has been deployed to the real production environment.

Before Docker, configuring the environment for integration testing was painful – people were using fake database implementations, mocking servers, usually it was not cross-platform as well. However, thanks to Docker, now we can quickly prepare the environment for our tests.

In this workshop we would like to show how you can use Testcontainers ( ) – a popular Java testing library that provides lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container. We will integrate it into a Spring Boot microservice and use real PostgreSQL and Redis databases to test it, will isolate it from other microservices, and maybe even start Selenium browsers in Docker and test our application, all with the same library!

Main language Russian Proposal
Audience level Beginner & novice
Type of presentation Slides and code

Sergei Egorov

Sergei works at Pivotal on Project Reactor in Berlin, Germany. He is an active member of the Open Source community, member of the Apache Foundation, co-maintainer of the Testcontainers project, and a contributor to various OSS projects (Apache Groovy, Testcontainers, JBoss Modules, Spring Boot, to name a few), likes to share the knowledge and was presenting at different conferences and meetups in Russia, Germany, Ukraine, Norway, Denmark, Spain, and Estonia. He is passionate about DevOps topics, clouds, and infrastructure. Before Pivotal, he was working at Vivy, N26, Zalando, ZeroTurnaround, TransferWise, and other startups.

Company Pivotal