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

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

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

5.08.2008 12:50:15
12 ОТВЕТОВ
РЕШЕНИЕ

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

Чтобы начать, стоит посмотреть скриншоты Джона Пола Бодхуди. Блог JPB

9
31.10.2014 04:40:50

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

2
5.08.2008 12:51:47

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

4
5.08.2008 12:54:20

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

3
8.01.2015 15:32:04

Я также имел большой успех, используя NUnit .

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

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

4
6.08.2008 14:06:19
NMock из-за чрезмерного использования магических струн делает его плохим выбором для насмешливой основы. RhinoMocks или Moq - лучший выбор, потому что они полагаются на строгую типизацию.
Ben Scheirman 5.01.2009 20:37:06

Использование nUnit с TFS не так уж сложно. В Codeplex даже есть проект для реализации этого: NUnit для Team Build, который даже «публикует» результаты в хранилище.

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

3
28.01.2013 04:49:42

NUnit и Rhino хорошо подойдут, и контейнер с автоматической насмешкой может быть интересен.

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

9
12.09.2008 10:02:36

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

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

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

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

3
27.09.2008 04:28:28
Проблема с Moq заключается в том, что ему требуется .NET 3.5, потому что он использует лямбда-выражения и деревья выражений.
Michaël Larouche 17.06.2009 12:32:03
Не обязательно ужасная вещь, но вы правы, это будет сдерживать магазин v2.0.
smaclell 18.06.2009 20:58:11

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

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

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

4
4.07.2011 13:05:08

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

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

Typemock Isolator - фальшивый фреймворк для .Net Unit Testing

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

2
15.10.2008 14:24:18

Посмотрите скриншот Роба Конери на BDD, используя MSpec. Очень впечатляет http://blog.wekeroad.com/mvc-storefront/kona-3/

редактировать: теперь я использую этот подход: http://10printhello.com/the-one-bdd-framework-to-rule-them/

7
15.03.2017 17:00:07

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

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

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

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

2
4.07.2011 13:06:29