В великой книге Ошерова «Искусство модульного тестирования» одним из тестовых анти-паттернов является чрезмерная спецификация, которая в основном аналогична тестированию внутреннего состояния объекта вместо некоторого ожидаемого результата. По моему опыту, использование изолирующих фреймворков может вызывать те же нежелательные побочные эффекты, что и тестирование внутреннего поведения, потому что каждый стремится реализовать только поведение, необходимое для взаимодействия вашей заглушки с тестируемым объектом. Теперь, если ваша реализация изменится позже (но контракт останется прежним), ваш тест внезапно прекратится, потому что вы ожидаете некоторые данные от заглушки, которая не была реализована.
Итак, что, по вашему мнению, является лучшим подходом для противодействия этому?
1) Полностью внедрите свои заглушки / макеты, это имеет отрицательный побочный эффект, который может сделать ваш тест менее читаемым, а также указать больше, чем необходимо для прохождения теста.
2) Фавор, полностью реализованные подделки.
3) Реализуйте свои заглушки / подделки, чтобы они сделали ваш тест просто успешным, а затем разберитесь с хрупкостью, которую это может привнести.