I've come to a conclusion. I've had a hunch for a while. I've tried to have an open mind. But I've come to the conclusion, that as a guideline, unit tests should be one test per class. I've written a good amount of tests with SUnit over the years. I've maintained and worked with more. And I've come to the conclusion that unit tests, where the unit is a test object associated with another object type is the way to go. I find the "unit of functionality" approach harder to maintain and harder to refactor. I know this is not a majority held position. I have seen many tests written that "test a unit of functionality." If you're of that crowd, my challenge to you is to try it the other way. Next time you start to "test first" style design, when you sketch out your rough object model on a whiteboard, make the next question be "and what will the tests for these different objects look like?"