Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

Хорошо смотреть на экранные ролики John Paul Bodhood, чтобы вы начали. Блог JPB

Ответ 2

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

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

Ответ 4

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

Ответ 5

У меня был большой успех, используя NUnit.

Я также использовал NMock, когда возникла необходимость в макетных объектах. В качестве дополнительного бонуса factory для создания ваших макетных объектов называется Mockery.

Чтобы облегчить выполнение модульных тестов, я использовал TestDriven.NET для запуска модульных тестов по мере кодирования. Кроме того, я использовал Cruise Control.NET для просмотра SVN и проверки того, что каждая новая команда строит и передает все модульные тесты.

Ответ 6

Это, вероятно, резюме того, что уже было сказано, но для 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. Благодаря этому инструменту рефакторинга и руководства вы значительно увеличите свою производительность. Это поможет вам сменить код при разработке тестов.

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

Ответ 7

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

Ответ 8

Использование nUnit с TFS не слишком сложно. Там даже проект на Codeplex для реализации этого: NUnit для Team Build, который даже "публикует" результаты на складе.

Я не пробовал, но я бы посоветовал клиентам, которые имеют большие инвестиции (или которые имеют сильное предпочтение в отношении этого инструмента MSTest) в nUnit, которые заинтересованы в реализации TFS, чтобы продолжить nUnit, а не пытаться конвертировать все существующие тесты.

Ответ 9

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

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

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

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

Ответ 10

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

Ответ 11

Я рекомендую следующее:

TestDriven.NET. Модульное тестирование добавляет для VS, который полностью интегрирован со всеми основными модулями тестирования модулей, включая NUnit, MbUnit и т.д.

Изолятор Typemock - фальшивая инфраструктура для . Тестирование Net Unit

NUnit - платформа тестирования модулей с открытым исходным кодом, которая находится на С#.

Ответ 12

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

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

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

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