The discussion began with @dhh making the following points on TDD and test technique, which I hope I’ve got right. Firstly, the strict definition of TDD includes the following:
- TTD is used to drive unit tests
- You can’t have collaborators
- You can’t touch the database
- You can’t touch the File system
- Fast Unit Tests, complete in the blink of an eye.