In this session we will have a look at how the landscape of integration tests, especially in a setup that requires external services, has changed over the past 5 years. Back at Spring Boot 2.0 times testing your application agains external services such as databases, message queues and alike was still kind of a mess: Several approaches like Docker Maven plugin existed, but they have been a lot of caveats and downsides. With the rise of Testcontainers things changed a lot. We will have a quick look what it means creating a Testcontainers module - using Neo4j as an example - and then going from the original Spring approach with dynamic properties, the breath of fresh air that Quarkus introduced with their Devservices into modern testing with Spring Boot 3.1+. I am gonna also demonstrate how valuable a programmatic approach is for me as a developer of services must be compatible with a broad range of database versions and what role a cloud offering for Testcontainers plays in that…

Talk Level:
INTERMEDIATE

Bio:
Michael Simons is a father, husband and athlete (the later is probably just wishful thinking). Michael is also a Java Champion, Oracle Cloud Groundbreaker ambassador, published author, JUG leader and currently working on Spring Data and Neo4j-OGM at Neo4j. In this role, his main focus is providing first class support of Neo4j in the Spring Environment, but he also made contributions to Testcontainers, Spring Boot, Quarkus and a lot of other projects. Michael writes regular about Java, Software Architecture and live in general on https://info.michael-simons.eu