Тестирование программного обеспечения: фейк против заглушки - PullRequest
26 голосов
/ 24 июля 2011

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

Ответы [ 3 ]

32 голосов
/ 24 июля 2011

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

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

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

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

19 голосов
/ 18 марта 2014

A fake ведет себя так же, как и то, что заменяет.

A stub имеет «фиксированный» набор «стандартных» ответов, относящихся к вашим тестам.

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

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

5 голосов
/ 24 июля 2011
...