Любой, кто использует Moles/Pex в производстве?

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

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

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

Ответ 1

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

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

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

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

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

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

Ответ 2

Я думаю, что родинки насмехаются над следующим уровнем, это намного мощнее.

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

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

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

Ответ 3

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

Ответ 4

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

Ответ 5

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

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

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

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

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

Ответ 6

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

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