Partial doubles are really easy to use: just stub or expect a message on any object! However, we said in Partial Doubles that we consider their usage to be a code smell. We’d like to flesh that statement out a bit now.
Most unit tests involve a mixture of two types of objects:
Partial doubles don’t fit neatly in this hierarchy. They are partially real and partially fake. Are they part of what you are testing or part of the environment you are constructing? When an object’s roles are unclear, your tests can be harder to reason about.
We prefer not to mix these roles ...