Я собираюсь добавить набор тестов в свое приложение, однако не могу перейти к более новым платформам тестирования для .NET 3.5.
У кого-нибудь есть предложения по поводу хороших платформ для тестирования?
Мы используем MbUnit и Rihno Mocks, и они очень хорошо работают вместе. При выполнении TDD вам почти наверняка понадобится внедрить некоторую форму зависимости, хотя это можно сделать вручную, стоит посмотреть на контейнер IoC, такой как Castle Windsor .
Чтобы начать, стоит посмотреть скриншоты Джона Пола Бодхуди. Блог JPB
NUnit всегда мой любимый. Однако, если вы используете TFS в качестве источника контроля, я предлагаю вам использовать Microsoft Stack.
Для библиотеки Mock Object я нашел Rhino.Mocks с лицензией BSD довольно приятным.
NUnit доступен по адресу http://www.nunit.org. Я бы предложил это даже при работе со стеком MS - поддержка каркасов не-MS происходит в предварительных просмотрах MVC, которые показывают определенное движение в правильном направлении, что позволяет нам все, чтобы настроить наши стеки, чтобы соответствовать.
Я также имел большой успех, используя NUnit .
Я также использовал NMock, когда возникла необходимость в фиктивных объектах. В качестве дополнительного бонуса, фабрика для создания ваших фиктивных объектов называется Mockery.
Чтобы упростить запуск модульных тестов, я использовал TestDriven.NET для запуска модульных тестов в процессе написания кода . Кроме того, я использовал Cruise Control .NET для просмотра SVN и проверки того, что каждый новый коммит собирается и проходит все юнит-тесты.
Использование nUnit с TFS не так уж сложно. В Codeplex даже есть проект для реализации этого: NUnit для Team Build, который даже «публикует» результаты в хранилище.
Я не пробовал - но я бы посоветовал клиентам, которые имеют большие инвестиции (или которые сильно отдают предпочтение этому инструменту MSTest) в nUnit, которые заинтересованы в реализации TFS, продолжать работу с nUnit, а не пытаться конвертировать все свои существующие тесты.
NUnit и Rhino хорошо подойдут, и контейнер с автоматической насмешкой может быть интересен.
Если вы тоже смотрите на BDD, то NBehave , вероятно, хороший выбор. Однако, если вы просто имеете в виду стиль BDD, который относится к модульному тестированию (xSpec), хотя вы можете избежать добавления инфраструктуры (хотя такие вещи, как specunit действительно добавляют некоторый синтактический сахар), но вы, возможно, захотите взглянуть на MSpec , также интересно.
Я собираюсь выкрикнуть Мок . Это чистая легкая насмешливая основа, которая поможет вам войти в пропасть успеха.
Инструменты тестирования, встроенные в TFS, в порядке, они справятся со своей работой, но часто могут быть немного громоздкими. Сгенерированные отчеты, покрытие кода и некоторые другие части особенно плохи, они заставляют вас лысеть в 22, а не 50.
Если вы действительно любите тестирование, попробуйте использовать Непрерывную интеграцию. Вы быстро почувствуете боль от регрессии и потенциально сможете быстрее достичь конечной цели.
Независимо от того, что вы делаете, попробуйте несколько и посмотрите, какой из них самый естественный, если у вас есть время. Удачи и счастливого кодирования.
Это, вероятно, краткое изложение того, что уже было сказано, но для 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.
Я также очень рекомендую Решарпер. С этим инструментом рефакторинга и руководства вы значительно увеличите свою производительность. Это поможет вам изменить код при разработке тестов.
Надеюсь это поможет
Я рекомендую следующее:
TestDriven.NET - модуль модульного тестирования для VS, который полностью интегрирован со всеми основными инфраструктурами модульного тестирования, включая NUnit, MbUnit и т. Д.
Typemock Isolator - фальшивый фреймворк для .Net Unit Testing
NUnit - платформа модульного тестирования с открытым исходным кодом, которая находится на C #.
Посмотрите скриншот Роба Конери на BDD, используя MSpec. Очень впечатляет http://blog.wekeroad.com/mvc-storefront/kona-3/
редактировать: теперь я использую этот подход: http://10printhello.com/the-one-bdd-framework-to-rule-them/
Для моего проекта я с большим успехом использовал NUnit и TestDriven.NET. Вы можете создать отдельную библиотеку только для размещения своего тестового кода или поместить ее в свой исполняемый файл или библиотеку. Все зависит от того, хотите ли вы, чтобы ваш производственный код переплетался с вашим тестовым кодом.
Для внедрения зависимостей я использую NInject в своем текущем проекте, и его работа великолепна. Если вы используете конструктор-инъекцию, вам не нужно загромождать свой код атрибутом [Inject].
Я не использовал фиктивную библиотеку для своего проекта .NET 2.0, но для другого проекта .NET 3.5 я буду использовать Moq
Обратите внимание, что все это работает с .NET 2.0 и выше. (кроме Мок)