Test Driven Development (TDD) is a type of development with automated tests. It is an approach towards clean code.
Two simple rules of TDD are –
(1) Write new code only if an automated test has failed and (2) Eliminate duplication. These 2 rules are followed by the tasks of programming which are called as TDD mantra (Red/green and refactoring).
Red – Start simple with a little test that does not work
Green – Make the test work quickly by making changes to the code
Refactoring – Eliminate dependencies (path to clean code)
According to Kent Beck (author of Test-Driven Development by example), rhythm of TDD is as follows –
- Quickly add a test
- Run all tests and see the new one fail
- Make a little change
- Run all tests and see them all succeed
- Refactor to remove duplication
Refer this book – Test Driven Development by example by Kent Beck to learn about TDD, he has beautifully explained the concepts with a live example and patterns for TDD.