I believe that one of the most powerful features of MockObjects is that you can reuse them over and over again. When hand coding MockObjects (as opposed to using tools like EasyMock, which I haven't looked into yet), there is usually a fairly big upfront cost involved to set up the code so that it works properly with MockObjects. This usually ends up being very much worth it since the MockObject turns a previously untestable class into a testable one. Any other classes that may depend on a RealObject can now use the MockObject, and they too become testable. Extending a MockObject is usually pretty easy, so you get even more reuse there.
I think this is especially true for MockingLegacyCode. Does anyone else HaveThisPattern?
Yes. When working with a new library, the first few tests can be quite expensive to write. After a while, however, things settle down. I've found that I haven't had to change mock libraries for months after laying down the basics. -- SteveFreeman