Testing DDD Building Blocks: A Multi-Layered Strategy for Confidence
DDD Europe - Talk (50min)
- Speakers
Jacek Milewski
- Description
Oh... Now I see... I mean Integration tests between
modules, while you mean betweencomponents" - Discovered after an hour-long discussion during Code Review. They need one more hour to find out that integrating amoduleis very different from acomponent. But first things first, let them discover that they definemoduleandcomponentin different ways. Then the tester says: Integration is when we connectmicroservicestogether...Is it true that we can only develop unit, integration, and E2E tests? Then what is the
unitin 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? :)