Когда я должен заглушить тип, создавая версию заглушки вручную, а не используя фальшивый фреймворк

Существуют ли какие-либо обстоятельства, когда выгодно вручную создавать тип заглушки, а не использовать макет (например, Rhino Mocks) в точке тестирования.

Мы используем оба этих подхода в наших проектах. Когда я смотрю на длинный список версий-заглушек объектов, у меня возникает ощущение, что это добавит накладные расходы на обслуживание и отодвинет реализацию заглушки от точки тестирования.

2 ответа

Решение

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

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

Когда вы достигаете точки, когда заглушки отнимают слишком много времени на обслуживание, наступает время переходить к заглушке / макету. Поэтому я думаю, что вы уже дали ответ.

В настоящее время я все еще использую заглушки с моим текущим проектом, для простоты. Есть только несколько типов, для которых я использую заглушку, и обычно есть только одна заглушка, иногда две для воссоздания ошибок, но не более.

Другие вопросы по тегам