DDD Europe 2026 - Program

Testing DDD Building Blocks: A Multi-Layered Strategy for Confidence

DDD Europe - Talk (50min)

Speakers

Jacek Milewski

Jacek Milewski
Description

Oh... Now I see... I mean Integration tests between modules, while you mean between components" - Discovered after an hour-long discussion during Code Review. They need one more hour to find out that integrating a module is very different from a component. But first things first, let them discover that they define module and component in different ways. Then the tester says: Integration is when we connect microservices together...

Is it true that we can only develop unit, integration, and E2E tests? Then what is the unit in a Domain-Driven Design context? Well-crafted tactical DDD building blocks demand a robust testing strategy, not just a collection of tools. This session will reveal how to move beyond the common pitfalls of ambiguous test definitions and disconnected testing practices.

We all know jUnit is simple, AssertJ as well, Mockito, even Spock. Just one tutorial, and we're good with several tools. But the real challenge isn't the tools; it's the missing guidelines on how to combine them effectively to build confidence across your DDD boundaries. It's time to stop asking "what is a unit test?" and start asking "what kind of confidence do we need, and how do we get it?".

This talk will explore practical, multi-layered testing strategies specifically tailored for Domain-Driven Design. We'll uncover different test scopes – beyond just unit and E2E – for your aggregates, modules, and bounded contexts.

Prepare to challenge your assumptions about testing pyramids and embrace a more nuanced approach to ensure the robustness and correctness of your DDD systems. Leave your boundaries behind and prepare to embrace something new!


About Jacek Milewski

Well... somehow my story reached up to this point! I'm the trainer in the best training company in Poland - Bottega IT Minds, and active developer and architect in Circle K, working with modern and valuable solutions. For some time I was coding without understanding how complex activity it is, now I'm modelling the solutions and implementing it, being fully aware of how frequent changes are and how simple they should be. I observe how cute, and secure the software can be, when designed, tested and implemented pragmatically. I'm asking lots of questions to distil what is crucial, filter out the noise and build backend, frontend, architecture and... teams. That way led me to Bottega IT Minds, where I can teach others, being among top mentors. Ones who taught me a lot before. Incredible, huh? :)