I constantly hear (or read about) people bashing Microsoft and make a fuss that they need to unseal their classes in the core framework.  The reason usually being for testing because all other reasons are usually academic examples that nobody in their right mind would do in the real world.  I hear it over and over again and read it over and over again on blog posts.  I'll admit that maybe 1 out of 50 is a valid reason, but most are folks hopping on the bash Microsoft bandwagon IMO.  Those singularities usually could be worked around though by a change in design.

To me, unsealing a class for a mocking framework is like driving a car with no body or interior (just a frame with a steering wheel, pedals, and gear shifts stick through it) so your mechanic can work on it easier.  Of course this is then 'justified' that it's a 'better' car because the emergency brake cable is exposed and can easily be changed.

Mechanics spend $1000's of dollars on getting tools that make working on cars easier that doesn't require Ford/GM/Toyota/etc to make cars with no bodies.   Perhaps those whose argument has been for 'testing' sake should spend a couple of bucks on getting some better tools or invent one's.  Perhaps people making this claim are the equivalent of people who are trying to rebuild their engine with only hand tools they bought at the local parts store.   Sure they can do it, but it's going to be a mess of a job.   A real mechanic is going to have a arsenal of pneumatic tools made by a high quality manufacturer like Matco or Snap-On and most importantly a lift and engine jack.

Disclaimer:  This isn't about DI, this is about unsealing classes for testing.