Yes, TypeMock is kinda cool in the easy with which you
are able to break things up, but it still can cause
trouble. Even with TypeMock.NET - your tests setups
might still look horribly unreadable and long if you
have many dependencies to break. Sometime just because
you have a tool means you have an execuse to write not
only slopy code but sloppy tests as well (breaking 10
dependencies before each test is very hard to read and
understand rather than seeing two-three lines of code
stating that some method is overriden.
Second of all - not all languages have the benefit of
using TypeMock.NET - they *have* to resort to more
manual means of doing things.