I'm a big fan of Test Driven Development (TDD); but I've discovered that some things are easy to unit test (e.g. interfaces, objects) and some things are hard. Dependencies between classes create ...