J-Spring 2024: Making your own Testcontainers module for fun and profit! – Oleg Šelajev
Testcontainers libraries are a de-facto standard for integration testing in the Java community. One of the reasons for its popularity is the ecosystem of the modules — pre-defined abstractions for creating containerized services for your tests in a single line of code. In this session, we’ll look at the architecture of Testcontainers modules and learn how to hide a lot of complexity behind a valuable and neat abstraction. You’ll learn the best practices around the lifecycle of Testcontainers: resource cleanup with Ryuk, waiting strategies, and out-of-the-box advanced data initialization options. We’ll cover various options for compliance with in-house policies for Docker images, look at custom networking, and how you can offer developers a paved road to chaos engineering and other more involved topics. Whether you’re working on technologies consumed via Testcontainers or want to improve your team’s productivity, creating a Testcontainers module is an excellent way to harness the complexity of your integration tests and contribute to the Java ecosystem.