Very interesting article by Martin Fowler about the use of Mock Objects in unit testing and how they influence the style of testing.
Mocks Aren't Stubs
The article seems pretty "complete" in that I repeatedly thought about issues that he later covered and discussed, like the coupling to implementation that Interaction based testing brings, the need for integration tests etc.
Personally, I have only ever done State based testing for real and even though I knew of Mock Objects (Piers Cawley did a brief talk at YAPC::Eu Munic a couple of years ago) I've never really used the technique. I thought the biggest point was to provide an environment to the tested object so it could make it through the test without barfing (i.e. using the mocks as stubs), but from Fowler's article it seems providing TDD guidance is at least as important.
The Java mock object classes in the article seems very useful with an elegant interface for defining what the mock object should do and evaluating how it was called. From reading the docs of Test::MockObject it seems to be similarly capable, but with a different interface. It may be more suited to the Test::More way of doing things rather than the xUnit way with test classes.
Googling CPAN for examples didn't match that many documents, but at least there are a few examples of real-world use.
I think I'll give it a test-drive and see how it works out.