Вопрос

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

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

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

Предложения?

Это было полезно?

Решение

Их так много, что это безумие.Безумно хорошо, я думаю.

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

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

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

Другие советы

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

Придерживайтесь NUnit.Не приближайтесь к MSTest.

Работать с NUnit + ReSharper — сплошное удовольствие.

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

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

Похоже, что xUnit.net предлагает немного другой подход к N/MB/MS/Unit, что интересно.

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

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

TestDriven.NET — Надстройка модульного тестирования для Visual Studio.

Типовой изолятор- Имитационная среда для модульного тестирования .Net.

НУнит — Платформа модульного тестирования с открытым исходным кодом на C#.

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

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

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

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

Раньше я использовал NUnit, но перешёл на MbUnit, так как у него больше возможностей.Я люблю РоуТест.Это позволяет вам параметризовать ваши тесты.Однако у NUnit немного лучшая поддержка инструментов.Я использую ReSharper для запуска тестов MbUnit.У меня были проблемы с TestDriven.NET при запуске моих методов SetUp для MbUnit.

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

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

Мне нравится МбЮнит, э, Галлион.Для меня наиболее важно иметь хорошую поддержку инструментов внутри Visual Studio.Для этого я использую Решарпер, который имеет Запуск тестов MbUnit.Многим людям, кажется, нравится TestDriven.NET в качестве их тест-раннера.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top