Пакеты модульного тестирования .NET? - PullRequest
59 голосов
/ 05 августа 2008

Возвращаясь к немного большему количеству .NET после нескольких лет неиспользования его полный рабочий день, и удивляясь, какие хорошие пакеты для модульного тестирования в наши дни.

Я знаком с NUnit (несколько лет назад) и немного поигрался с IronRuby с целью запустить что-то вроде rspec, но не знаю многого из этого.

Я понимаю, что мог бы зайти в Google и назвать это день, но я полагаю, что, вероятно, получу лучший и более информированный ответ, задав вопрос здесь: -)

Предложения

Ответы [ 12 ]

52 голосов
/ 05 августа 2008

Есть так много, что это безумие. Наверное, безумно хорошо.

  • Для консервативных типов (я), NUnit все еще доступно и все еще более чем способно.
  • Для типов Microsoft MSTest является адекватным, но медленным и неуклюжим по сравнению с Nunit. Также не хватает покрытия кода без больших затрат на дорогие версии Visual Studio.
  • Там также Мбайт . Это похоже на NUnit, но имеет отличные функции, такие как RowTest (запустить тот же тест с другими параметрами) и Rollback (вернуть базу данных, как вы ее нашли после теста)
  • И, наконец, xUnit.net - модный вариант с некоторым отношением.
  • Да, и TestDriven.NET обеспечит интеграцию с IDE для Nunit и MBunit.

Я уверен, что они все в порядке. Хотя я бы держался подальше от MSTest, если только вы не наслаждаетесь удобством иметь все в одной IDE из коробки.

Скотт Хансельман имеет подкаст на эту тему.

8 голосов
/ 14 августа 2008

Придерживайтесь NUnit. Не подходи близко к МСТесту.

NUnit + ReSharper - это абсолютная радость для работы.

8 голосов
/ 06 августа 2008

Мы используем NUnit и MBUnit здесь. Мы используем TestDriven.NET для запуска модульных тестов из Visual Studio. Мы используем превосходные, настоятельно рекомендованные RhinoMocks в качестве фальшивых рамок.

6 голосов
/ 28 августа 2008

Раньше я использовал NUnit, но сейчас склонен использовать MbUnit для двух ключевых функций: 1. Функция RowTest позволяет вам легко запускать один и тот же тест для разных наборов параметров, что важно, если вы действительно хотите получить полное покрытие. 2. Функция отката позволяет вам запускать тесты для вашей базы данных, откатывая изменения после каждого теста, каждый раз поддерживая базу данных в одном и том же состоянии. И это так же просто, как добавить атрибут [Rollback].

Еще одним приятным аспектом MbUnit является то, что его синтаксис почти идентичен NUnit, поэтому, если у вас уже есть целый тестовый стенд под NUnit, вы можете просто переключать ссылки без необходимости их изменения (очень сильно?) код.

6 голосов
/ 06 августа 2008

xUnit.net выглядит немного иначе, чем N / MB / MS / Unit, что интересно.

В моем поиске решения, подобного rspec (потому что я ЛЮБЛЮ rspec), я также наткнулся на NSpec , который выглядит немного многословно, но в сочетании с NSpec Extensions аддон для использования методов расширения C # 3, выглядит довольно красиво.

5 голосов
/ 15 октября 2008

Я использую следующее:

TestDriven.NET - Модуль модульного тестирования для Visual Studio

Typemock Isolator - Mocking Framework для .Net Unit Testing

NUnit - Фреймворк для модульного тестирования с открытым исходным кодом на C #.

4 голосов
/ 20 июля 2009

Это старый вопрос, но вам может показаться интересным, что Gallio v3.1 теперь поддерживает RSpec через IronRuby.

3 голосов
/ 11 сентября 2008

Я сделал небольшой пример тестирования .net lib с использованием ironRuby: http://khebbie.dk/post/2008/08/Example-of-using-ironRubys-mini_rspec-library.aspx

3 голосов
/ 05 августа 2008

Мне нравится TestDriven.NET (хотя я использую ReSharper), и я очень доволен XUnit.net . Он использует факты вместо тестов, которые многим не нравятся, но мне нравится различие в терминологии. Полезно подумать о наборе автоматически подтверждаемых фактов о вашем программном обеспечении и посмотреть, какие из них вы нарушаете, когда вносите изменения.

Имейте в виду, что Visual Studio 2008 Professional (и выше) теперь поставляется с интегрированным модульным тестированием (раньше он был доступен только в версиях Team System) и может подходить для ваших нужд.

2 голосов
/ 14 августа 2008

Это действительно личное мнение с моей стороны (я думаю, это излишне, так как это форум). NUnit, MSTest, и т. Д. Все делают одно и то же. Однако я считаю NMock незаменимым.

NMock или любой другой пакет для проверки не является модульным тестированием, но он позволяет гораздо проще проводить модульное тестирование, чем должно быть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...