Почитать Хорикова про юнит тестирования.
Если брать кратко пример тут есть
https://enterprisecraftsmanship.com/posts/domain-vs-application-services/1) Нужно разделить вещи где есть зависимости и условия и разделять на 2 места. В одном зависимости, в дургом условия и логика.
2) Места где зависимиости - покрываются интеграционным тестом без моков. Чтобы проверить как работает система в целом. Ну если есть такая возможность и это не какой то апи нам неподвластный, тут уже мок.
3) Места где логика и нет зависимости - в них нет смысл пихать моки каких-нить сущностей и данных, можно пихать реальные объекты (не из БД а просто создавать).
Собственно моки почти и отпадают. Хотя подходы разные есть.