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