Для целей автоматических модульных тестов макеты почти всегда являются лучшим вариантом. Поскольку они используют отражение для насмешки над объектом, они будут оставаться в курсе, когда вы будете вносить изменения.
Единственный раз, когда я создаю заглушку, это тестирование интеграции - например, вы можете заблокировать службу отправки SMS, чтобы вы могли запустить период интеграции / пользовательского тестирования без оплаты за отправку SMS-сообщений (вместо этого сообщения хранятся, чтобы их можно было проверить).