Тесты с моками сильно сцепленны с реализацией, а так же не гарантируют работоспособность системы с реальной зависимостью. Поэтому использование моков допустимо только в ограниченном наборе случаев:
Тестирование наблюдаемого поведения взаимодействия с неуправляемой зависимостью;
Тестирование реакции системы на поведение управляемой зависимости, которое сложно спровоцировать - в основном, сюда попадают системные ошибки.
Подмена медленной или дорогой управляемой зависимости, у которой нет быстрого или дешёвого аналога, редакции или режима.