In this chapter, we covered some pitfalls that will hinder TDD, such as dependence on third-party libraries, direct instantiation of classes, and fragile tests. We also discussed ways to avoid or work around those issues. We introduced and discussed each of the SOLID principles. We also discussed the different types of test double and when each type is appropriate. Lastly, we gave a short example of an N-tiered application and how it could be tested.
In Chapter 5, Tabula Rasa – Approaching an Application with TDD in Mind, we'll explore how to approach and application with a TDD in mind, turning theory into practice, and how better to grow an application through tests.