- The real object has nondeterministic behavior
- The real object is difficult to setup
- The real object has behavior that is hard to trigger
- The real object is slow
- The real object is a user interface
- The real object uses a call back
- The real object does not yet exist