TDD is about speed. We want to quickly demonstrate whether an idea, concept, or implementation is valid or not. Further on, we want to run all tests quickly. A major bottleneck to this speed is external dependencies. Setting up the DB data required by tests can be time-consuming. The execution of tests that verify code that uses third-party APIs can be slow. Most importantly, writing tests that satisfy all external dependencies can become too complicated to be worthwhile. Mocking both external and internal dependencies helps us solve these problems.
We'll build on what we did in Chapter 3, Red-Green-Refactor – From Failure Through Success until Perfection. We'll extend Tic-Tac-Toe to use MongoDB as data storage. None of our unit tests will...