Кто-нибудь использует Moles / Pex в производстве? - PullRequest
11 голосов
/ 16 марта 2010

Я выполнил поиск по форуму и не нашел аналогичного вопроса. Я стремлюсь принять окончательное решение о том, что наша предпочтительная модель моделирования движется вперед как лучшая практика - я выбрала Moq ... пока я совсем недавно не обнаружила, что MS наконец-то создала среду моделирования, которая называется Moles, которая, похоже, работает аналогично в TypeMock с помощью профилировщика API sexyness и т. д.

Здесь миллион тем "NMock vs Moq vs TypeMock vs Rhino ....". Но я никогда не вижу в этом кротов. На самом деле, я даже не знал, существует ли он совсем недавно. Кто-нибудь использует это? В производстве? Кто-нибудь выбросит для этого свои старые насмешливые рамки, и если да, то какой? Каково это по сравнению с тем, что вы использовали для насмешливых фреймворков?

спасибо .. ps, мы используем VS2008 и вскоре переходим на 2010 год.

Ответы [ 6 ]

7 голосов
/ 23 апреля 2010

Родинки используются внутри Microsoft несколькими группами разработчиков.

7 голосов
/ 20 апреля 2010

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

И Typemock, и Moles имеют в виду цель изоляции. Специально для этих надоедливых закрытых классов, не виртуальных методов.

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

Это преимущества в Typemock, я еще не обнаружил с родинками

  • Поддержка инструментов покрытия кода (Ncover и Partcover)
  • Поддержка перехвата / проверить на рядовых (методы / свойстве) [да это спорно]
  • Более отлаженный продукт, работающий быстро и с интуитивно понятным API (все еще возиться с Moles, чтобы даже работать правильно)

Я надеюсь, что Моулз вырастет в выпущенный продукт, но начало моих экспериментов с ним, похоже, ничем не отличается от других проектов MS Research; как правило, не полированный, но это, похоже, характер проектов такого типа.

7 голосов
/ 01 апреля 2010

Я думаю, что родинки выводят насмешки на следующий уровень, он намного мощнее.

Что вы подразумеваете под «в производстве»? Родинки полезны только при юнит-тестировании. Это оказывает серьезное влияние на производительность, а также позволяет использовать небезопасный код в производственной среде (когда-либо задумывались о замене функции IsAuthorized для возврата true?).

Родинки можно использовать как в 2008, так и в 2009 году.

Надеюсь, это ответит на ваш вопрос.

1 голос
/ 07 сентября 2010

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

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

Автоматически сгенерированные тесты и PUT - трудно понять, какое сообщение они пытаются передать, т. Е. Следует ли изменить шаблон кодирования или что-то еще, как если бы он пытался генерировать параметризованный тест на основе интерфейса, но в зависимости от тестируемого класса, PUT auuto gen могут быть не лучшим способом использовать параметризованные тесты.

В целом, существует кривая обучения, плюс структура также займет некоторое время для созревания. Позитивная сторона, концепция хороша и требует затрат (если реализовано правильно), а время ответа от команды, поддерживающей PEX, действительно положительное, иногда вы получите полезный ответ в течение 2 часов на форуме PEX.

С наилучшими пожеланиями Йогеш Павар

1 голос
/ 20 июля 2010

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

0 голосов
/ 24 февраля 2012

Если под «в производстве» вы подразумеваете использование его на продукте, который используется в производстве, то абсолютно!

Мы используем Moles для изоляции функциональности в наших модульных тестах в очень громких проектах для таких целей.такие компании, как Google и McDonalds.Разумеется, модульные тесты не запускаются на производственном сервере, поэтому Moles никогда не развертывается на производстве.

...