Каковы преобладающие фреймворки для .NET 3.0? - PullRequest
0 голосов
/ 25 августа 2010

В предисловии я люблю Мок. Я хотел бы использовать его в .NET 3.0. К сожалению, я не могу, но я все же хотел бы использовать макеты для модульного тестирования. Кроме того, я использовал Rhino раньше, но я абсолютно ненавижу это. Однако, чтобы быть немного более наглядным, это потому, что интерфейс кажется неуклюжим и неинтуитивным - с этим можно справиться - и документация либо ужасная, либо вообще отсутствует - что не может.

Суть моего вопроса заключается в том, существуют ли другие прилично документированные, интуитивно понятные, свободно распространяемые фреймворки для C # 2.0 / .NET3.0, или я застрял, стуча головой по Rhino в отсутствие Moq.

Ответы [ 3 ]

2 голосов
/ 25 августа 2010

Я лично различаю три вида насмешливых рамок (в порядке появления):

  1. Arrange-Act-Assert (AAA) с использованием имен строковых методов ala NMock2 / NUnit Mocks. Довольно легко начать, но не сильно напечатано. Если метод / свойство переименовано, то тест не пройден во время выполнения.

  2. Запись и воспроизведение аля Rhino Mocks. Я полностью согласен с вами, синтаксис отстой, и я ненавижу его использовать. Он полностью строго типизирован, поэтому при рефакторинге метода тест остается актуальным.

  3. AAA с использованием лямбда-выражений и выражений. К ним относятся MOQ, последние выпуски AAA Rhino Mocks и Typemock Isolator. Безусловно лучший синтаксис, но требует .NET 3.5.

Если .NET 3.5 недоступен, я боюсь, что вам придется выбирать наименьшее зло - ужасный синтаксис Rhino Mocks или позднее связывание с именами методов / свойств.

PS. У Microsoft есть собственная структура изоляции, которая называется Moles. Я не проверял это сам, но он должен быть достаточно мощным (то есть дразнить статические методы, непубличные методы и т. Д.). Проверьте это здесь .

2 голосов
/ 25 августа 2010

Вы смотрели на этот вопрос? , что-с-насмешливо-рамки в использовании

0 голосов
/ 25 августа 2010

У NUnit есть доступ к моделированию, так что если вы уже тестируете его, тогда вам уже пора идти. Просто включите NUnit.Mocks.

Это не соответствует вашему желанию свободно владеть интерфейсом.

...