In my commute this morning I was listening to my weekly dose
of DotNetRocks - Show 214 with guest Billy Hollis and Billy mentioned something
on Agile to illustrate a point, and it has stuck with me all day.
He was referring to a presentation he attended where an advocate said he was
writing 2 or 3 lines of unit test code for each line of production code. Billy's objection to this is hardly a challenge
to intuition: Are we getting 4x the
value for 4x the code?
One of my metrics for the unit tests that I write is that they don't
hurt. Some can be a couple of lines long, some can be heavily
copied-n-paste'd. Customizing a CodeRush template is time well
spent. There are no wrong answers, however you get them in there is
really OK.
It makes sense: You're writing a unit test. The aim is to
isolate a gizmo of your choosing in your code and exercise it. The cumulative weight
of the unit tests should really function as an expression of your intent for
the gizmo. I outlined what I think of the high importance of naming your tests in a prior post.