Я часто рад, что нужно избегать издевательств и предпочитать окурки.Почему я должен выступать за окурки над издевательствами?
Изолирующие рамки, такие как FakeItEasy и NSubstitute, делают большую часть времени очень легким для издевки или заглушки зависимости. Эти рамки сами по себе не различают окурки или издевки, но назовите их вообще подделками или заменителями. Насколько мне известно, в первые дни «Mocking» было очень сложно создавать макетные объекты, потому что они использовали громоздкий механизм Record and Replay. Но сегодня кажется, что больше нет большой разницы.
Так почему я должен выступать за заглушки над издевательствами? Почему насмешки более хрупкие, чем окурки?
Спасибо за ваш ответ. Может, мне следовало задать другой вопрос. Почему Mocks наносит больше урона, чем окурки или почему издеваются над более хрупкими, чем окурки? – Rookian
Я бы ожидал лучшего ответа от кого-то, у кого 100K + rep. Например, вы можете определить понятия «заглушка» и «макет» своими словами (ссылки только на ответы, как вы знаете, не рекомендуется).Самая большая проблема с этим ответом, однако, заключается в том, что он основан на ошибочном «макетном» определении из «старой» (2007) книги, что противоречит тому, что предоставляют фактические насмешливые библиотеки. То есть, существует разрыв между теорией и практикой. –
@Rookian Я думаю, что предпосылка для вопроса немного испорчена. Как объясняет Джерард Мезарош в этой старой (по-видимому, бесполезной) книге его, Commands производят * косвенный вывод * вместо * прямого вывода *, создаваемый Queries. Вы часто можете превращать косвенный вывод в прямой вывод, и наоборот, поэтому они фактически эквивалентны. Если я должен размышлять, люди не любят Mocks, потому что они склонны к тому, что Mocks слишком много взаимодействуют друг с другом, но это больше проблема, связанная с тем, что вы слишком много делаете, чем проблема с самими Mocks ... –