Chapter 8

Test Doubles

Functions that change state should not return values and functions that return values should not change state.

– Bertrand Meyer, Object-Oriented Software Construction

I still remember when I joined the first hardcore XP team. It was still experimental at that company, and we didn't have the funds for tools in the beginning, aside from an IDE refactoring helper. We couldn't introduce frameworks without a bureaucratic request – a troublesome authorization process lasting weeks. Nevertheless, our backlog needed to be delivered in time. That's where I had to learn to inject dependencies manually and to manually develop all test doubles. We called it "poor man dependency injection" and "poor man mocking," underscoring the ...

Get Agile Technical Practices Distilled now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.