Karl made a confession and I just wanted him to know that not only is he not alone, but as far as the Agile Manifesto is concerned, TDD isn't even mentioned. Too often I think we see people lumping TDD in with Agile when it's not really there at all.
As far as TDD is concerned, people fall into several camps:
- No tests at all
- Tests for complex processes only (my camp)
- Tests for every single method in the application
Personally I find both extremes to be rather irresponsible when it comes to the business value and cost of what is being produced. For example, I don't write unit tests for basic CRUD operations, in general the only time these break is if the database goes down. It's simply not a productive use of my time to write tests for things that only fail if the database goes down. Most of my tests revolve around calculations and financial data.
*shrug* I don't think there's a right or wrong answer to it, but I also don't think people should feel like they should be writing a few hundred tests regardless of the actual domain.