например - вот у тебя есть Request условный симфоневый. или доктриновский array collection. или энвелопы у messages. Это просто не надо мокать. Более того - это и так обычно объекты без внешних зависимостей, контейнеры для данных. их вообще не надо мокать особо
Очень помогает с "а что мокать и как мокать" такое ограничение - если у тебя есть "что-то" что ты хочешь замокать - этот твой мок должен ПОЛНОСТЬЮ (без каких-либо исключений) предоставить описание контракта. повторюсь - полностью. С учетом всех нюансов аля есть у тебя array collection с методом length и isEmpty и они должны вести себя соответственно. Если length возвращает 0 то isEmpty true и т.д.
я стараюсь логику тогда из этого места куда-то вынести и оставить инфраструктурную грязь там где оркестрация - нет ифов нет нужны в юнитах. приемочные тесты покроют
согласен со всем хотя конкретно с Envelope мне как-то неочевидно, он принимает только сообщение, но мне нужен Envelope с разным состоянием счетчика) ну я такой и пошел мокать)
иногда и они не помогают :( потому это что-то лезет на куда-то свой сервер, который нельзя изменить.. приходится городить вариант "полностью предоставить описание контракта"
а в чем смысл весь контракт делать ? у вас используется только один метод, который и нужно мокнуть просто делаем его во всех вариациях чтобы собственный код был готов смысл мокать еще и другие методы ?
смысл в том что бы твои тесты не делали предположений о том что твоя реализация использует а что нет. что бы уменьшить связанность. Что бы проверить качество и специализацию контрактов