Подтвердить что ты не робот

Программное обеспечение для тестирования: подделка против заглушки

Существует немало писем о stub vs mocks, но я не вижу реальной разницы между подделкой и заглушкой. Может ли кто-нибудь осветить его?

4b9b3361

Ответ 1

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

Тем не менее, я попробую еще раз своими словами:)

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

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

Ответ 2

A поддельный имеет то же поведение, что и вещь, которую он заменяет.

A stub имеет "фиксированный" набор "консервированных" ответов, которые являются специфическими для вашего теста (ов).

A mock имеет множество ожиданий относительно сделанных вызовов. Если эти ожидания не выполняются, тест терпит неудачу.

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