I made a comment yesterday on the altdotnet Yahoo group to the effect of:
Test Driven Development is All About Design, Tests Are a Useful By-Product
I worded it slightly differently then, but I think this sums it up better. And coincidentally, Oren just blogged a very similar sentiment.
Whatever you may think, TDD is certainly not about the tests.
-
TDD is a mindset
-
TDD is an approach to designing and writing better software
-
TDD it is a method of driving out good design through *using* your own classes and methods
-
TDD is about starting with your pain points, and working towards a point where the code feels right, because the pain has subsided
So if ever someone says we are going to use TDD to write our unit tests, take a moment to think.
Red, Green, Refactor - the most important of the three by a long measure is Refactor. Passing tests are a good starting point, but not much more.