This book is written by developers for developers. As such, most of the learning will be through code. Each chapter will present one or more test-driven development (TDD) practices and we'll try to master them by solving katas. In karate, a kata is an exercise where you repeat a form many times, making little improvements in each. Following the same philosophy, we'll be making small, but significant improvements from one chapter to the next. You'll learn how to design and code better, reduce time to market (TTM), produce always up-to-date documentation, obtain high code coverage through quality tests, and write clean code that works.
Every journey has a start and this one is no exception. Our destination is a Java developer with the TDD black belt.
In order to know where we're going, we'll have to discuss, and find answers, to some questions that will define our voyage. What is TDD? Is it a testing technique, or something else? What are the benefits of applying TDD?
The goal of this chapter is to obtain an overview of TDD, to understand what it is, and to grasp the benefits it provides for its practitioners.
The following topics will be covered in this chapter:
- Understanding TDD
- What is TDD?
- Testing
- Mocking
- Executable documentation
- No debugging