I particularly like the technique where a virtual method
allows the unit tests to subclass and inject
dependencies. I feel this is an elegant solution
compared to dependency injection with constructors. I
was wondering if you had rules of thumb on when to use
one versus the other?