Помимо устранения баз данных и других медленных или вспомогательных проблем из тестируемого модуля, имитация позволяет вам начинать писать тесты для класса без необходимости реализации каких-либо сотрудничающих классов.
Когда вы разрабатываете какую-то часть функциональности, вы понимаете, что вам нужен какой-то другой класс или сервис, чтобы придерживаться принципа единой ответственности, но затем вам придется реализовать их, чтобы заставить работать первый, что, в свою очередь, продемонстрирует необходимость еще большего количества классов.
Если вы можете смоделировать или заглушить эти зависимости, то вы можете создать интерфейсы, на которые будет опираться этот первый класс, без необходимости реализовывать что-либо за пределами этого класса - просто вернуть готовые результаты из заглушек интерфейсов.
Это важный компонент подхода, основанного на тестировании.