I enjoyed reading this book because it stretches the boundaries of Test-Driven Development (TDD). My original TDD book demonstrated TDD in an ideal situation, in which the programmer is just typing in code and doesn t have to worry about external systems or user interfaces. After you get into the messy realities of widgets and databases, you need new techniques to continue practicing TDD and reaping its benefits, among which is confidence in cleaner code written faster.
With this book, the pieces missing from my book are included. If you want to test drive code that includes a Web interface and a database, you will learn how to do that in these pages. Even if you aren t using the Microsoft technology, you will find ideas you can carry to your application server or database.
The strength of this book is its concreteness. The extensive examples show you exactly how expert programmers use test-driven development with realistic tasks . Following the examples will show you the techniques used and, more important, the flow between the techniques. Technique can be learned from a book, but to understand the rhythm of development, you usually need to sit down with a programmer who understands it. As you read, paying careful attention to the way the techniques fit together in this book will teach you lessons about the rhythm of programming.
I think TDD is a really valuable tool. It s inexpensive, it s easy to adopt, and it brings immediate improvement. TDD has led to fewer defects, less debugging, more confidence, better design, and higher productivity in my programming practice. More important, I sleep better at night knowing that my code works in every circumstance I can think of, and I can prove it at the push of a button. This book gives you the practical advice you need to gain the benefits of TDD.