David is a developer/consultant for Codecentric, a TDD maniac and co-organizes the Software Craft Meetup Munich.
“London School TDD” favors Outside-In Design to avoid over-engineered design (YAGNI) and to guide the choice of which test to implement next. This session presents an alternative approach to Outside-In TDD that has the same objectives but uses fake data instead of mocking. Starting from the assertion of an acceptance test, on an incremental destructuring journey down the call stack fake data is refactored one step at a time into code structure. The remaining “logic” is tackled with regular unit-test level TDD.
We start with theory and some screencasts to demonstrate the approach. Then we try it out in practice doing a mob programming session all together. In a following debrief we will discuss our observations, the strengths and weaknesses of the approach and the involved trade-offs.
You can improve your TDD workflow learning several new TDD techniques you can either apply separately or all of them combined in the “Fake It Outside-In TDD” approach. You will see how it gets easier to choose the next steps, to progress in ‘Baby Steps’ and to stay ‘green’ most of the time.