I've written a class that depends on several other classes to do its work. That is, each of its public methods will have many calls out to other classes as part of its processing. This has caused my tests to be quite cumbersome as I have to define an awful lot of Mock expectations in order to handle it.
Maintaning the tests is equally as cumbersome because a small change in the code can cause many tests to fail simply because the expectations are now wrong.
I've been doing test-first design for several years, but only to some degree. I still consider myself to be fairly new at it, and I suspect that there are some standard practices that I don't yet know of that can keep the expectations down or at least manageable.