For instance (as I don't want to be misunderstood), if your dependencies are using low-level objects likes sockets or files, that induce race-conditions and/or unexpected latency (in a multi-threaded environment), you cannot mock them in a way they help you detect a bug : you should emulate those race-conditions and latency.