Stubs aren't Fakes

Martin Fowler wrote "Mocks aren't Stubs" quite some time ago. After having discussed a variation on this theme, also for quite some time, with Christian Crowhurst and Claudio Perrone, my conclusion regarding the variation is that "Stubs aren't Fakes".

Nope, I'm not joking. I'm serious. I think good names are dead important for our language as developers. See what happens otherwise, for example:
Architect, Component, Service, ...
And you can probably add to this list, right?

Astels writes the following in his TDD-book:
"Stubs: A class with methods that do nothing. They are simply there to allow the system to compile and run.
Fakes: A class with methods that return a fixed value or values that can either be hardcoded or set programmatically.
Mocks: A class in which you can set expectations regarding what methods are called, with which parameters, how often, etc. You can also set return values for various calling situations. A mock will also provide a way to verify that the expectations were met."


One less bit of fuzziness.
:-)