Chapter 4. Unit Testing Strategies
Testing a software solution is not only a question of technologies; actually, it's more a question of development strategies. For example, the most important objective of Test Driven Development (TDD) is a good overall design of a software solution. TDD is a specific development strategy and it's achieved through unit testing and its tools and frameworks.
It's very important to say that TDD and unit testing are not synonyms, and they're not related to the same concept even if they are complementary. TDD uses unit testing as a way to express a particular development style, but the latter can also be used in a development environment that is not based on TDD. In fact, we can simply write unit tests because we need to avoid regression errors, or because we want to focus on a single software module at a time and need to mock other dependent modules.
There is not enough space in this book to talk extensively about TDD because too...