得开发人员可以关注与被测系统（SUT）的行为的测试，而不需要担心被测系统的依赖关系。例如，测试在特定状态下一个基于多个对象的复杂算法，如果使用模拟对象代替真实对象可以很容易地表达出来。除了复杂性问题和关注点分离带来的好处，还有实际的速度问题。使用测试驱动开发(TDD)开发一段实际的软件很容易就有数百个单元测试。如果这些单元测试中许多都涉及到与数据库，Web服务和其他进程间通讯或网络系统的通讯，单元测试的组合会很快会慢到无法执行例行测试。而这会导致坏的习惯以及程序员不愿意维护测试驱动开发的基本原则。