c# - тест - Каков наилучший способ реализации BDD/TDD в.NET 2.0?




написание bdd сценариев (8)

NUnit всегда является моим фаворитом. Однако, если вы используете TFS в качестве исходного элемента управления, я предлагаю вам придерживаться Microsoft Stack.

Я хочу добавить набор тестов для своего приложения, однако я не могу перейти к новым платформам тестирования для .NET 3.5.

Есть ли у кого-нибудь предложение о хорошем тестировании?


Для библиотеки Mock Object я нашел BSD-лицензированные Rhino.Mocks довольно приятными.


NUnit и Rhino хорошо подходят, а авто-насмешливый контейнер может представлять интерес.

Если вы тоже смотрите BDD, то NBehave , вероятно, является хорошим выбором. Если, однако, вы просто имеете в виду стиль BDD, который относится к модульному тестированию (xSpec), хотя вы можете уйти с добавлением фреймворка (хотя такие вещи, как specunit , добавляют некоторый синтаксический сахар), но вы, возможно, захотите посмотреть на MSpec , также интересно.


Мне нужно будет выкрикнуть для Мока . Это чистый световой насмешливый фреймворк, который поможет вам вступить в успех.

Инструменты тестирования, встроенные в TFS, в порядке, они выполняют свою работу, но часто могут быть немного громоздкими для работы. Сгенерированные отчеты, охват кода и несколько других частей особенно плохи, они заставляют вас облысеть на 22, а не на 50.

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

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


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

Для Injection Dependency я использую NInject в своем текущем проекте и отлично его работаю. Если вы используете инъекцию конструктора, вам не нужно загромождать свой код с помощью атрибута [Inject].

Я не использовал mock-библиотеку для моего проекта .NET 2.0, но для другого проекта .NET 3.5 я буду использовать Moq

Обратите внимание, что все это работает с .NET 2.0 и выше. (кроме Moq)


Это, вероятно, резюме того, что уже было сказано, но для TDD я лично использую Rhino Mocks и MBUnit. Rhino Mocks - это насмешливая структура, свободная и открытая. Преимущество Rhino Mocks заключается в том, что нам не нужно использовать магические строки для определения ваших ожиданий, как в NMock.

Мне нравится MBUnit, потому что у MbUnit есть концепция RowTests, которая позволяет вам изменять ваши входы к вашему методу тестирования. MBUnit также свободно доступен.

Вы также хотите удостовериться, что все, что вы выбрали для платформы тестирования модулей, поддерживается вашим CI (Continuous Integration Server). Nunit поддерживается по умолчанию в Cruise Control.NET, и вам нужно сделать небольшую дополнительную работу, чтобы MBUnit работал в ccnet.

С точки зрения IDE у вас должен быть TestDriven.NET. TestDriven.NET позволяет вам щелкнуть правой кнопкой мыши и запустить тесты в среде IDE и поддерживает MBUnit и Nunit и другие.

NBehave - это библиотека BDD, которую я использовал. Я не использовал других, поэтому я не мог сравнивать и сравнивать их с вами, но NBehave поддерживается Gallio из команды MBUnit, а это значит, что вы можете запускать тесты BDD так же, как и ваш модуль с TestDriven.NET.

Я также очень рекомендую Resharper. Благодаря этому инструменту рефакторинга и руководства вы значительно увеличите свою производительность. Это поможет вам сменить код при разработке тестов.

Надеюсь это поможет


Мы используем MbUnit и Rihno Mocks, и они хорошо работают вместе. Когда вы делаете TDD, вам почти наверняка понадобится сделать инъекцию зависимостей, в то время как это можно сделать вручную, стоит посмотреть на контейнер IoC, такой как Castle Windsor .

Стоит взглянуть на скриншоты John Paul Bodhood, чтобы вы начали. Блог JPB


NUnit можно найти по адресу http://www.nunit.org. Я бы предложил это даже при работе с MS-стеком. Поддержка MVC-фреймворков происходит в предварительных просмотрах MVC, которые показывают определенное движение в правильном направлении, чтобы позволить нам все, чтобы настроить наши стеки для соответствия.





bdd