Почему я выбрал бы Moles в качестве моей насмешливой основы? - PullRequest
9 голосов
/ 14 июня 2010

Я просматривал несколько платформ Mocking для ASP.NET и натолкнулся на Microsoft Moles. Это, кажется, является частью команды Microsoft Research, и было интересно, если кто-то здесь выбрал Moles над другими зрелыми платформами Mocking, такими как Moq.

Ответы [ 3 ]

15 голосов
/ 21 июня 2010

Я фактически использую Moq и Moles в одном и том же тестовом проекте.Оба имеют сильные стороны, и я использую каждый, где это уместно.Как правило, я использую Moq для стандартного рода тестирования AAA с проверкой, а Moles является «большим оружием» для других немодных вещей, таких как вызовы методов расширения и т. Д.

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

5 голосов
/ 19 июня 2010

Кроты были разработаны для эффективной работы с анализом белой коробки Пекса. Все другие фальшивые фреймворки обычно несут много накладных расходов.

Moles предлагает простое ценностное предложение: замена любого метода .NET делегатом. По своей сути, Moles не предоставляет API для выражения «проверки», как это делают другие платформы. Вам решать, подходит ли вам это решение или нет.

Если вам нужно иметь дело с (унаследованным) кодом, который зависит от жестко закодированных статических методов или закрытых типов с внутренними конструкторами, Moles может помочь вам разобраться с этими случаями.

Если у вас есть интерфейсы и хорошо скомпонованный код, Moles также генерирует тонкие заглушки, то есть реализацию интерфейса, которую вы можете использовать с профилировщиком.

3 голосов
/ 14 июня 2010

Кроты чаще сравнивают / противопоставляют TypeMock в том смысле, что они предлагают набор средств, выходящих за пределы привлекательности Moq и / или RhinoMocks.

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

Посмотрите это видео Dimecasts.net для хорошего обзора.

...