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

StackOverflow https://stackoverflow.com/questions/2214

  •  08-06-2019
  •  | 
  •  

Вопрос

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

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

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

Решение

Мы используем MbUnit ( модуль ) и Рино Издевается и они доказывают, что очень хорошо работают вместе.При выполнении TDD вам почти наверняка потребуется выполнить какую-либо форму внедрения зависимостей, хотя это можно сделать вручную, стоит посмотреть на контейнер IoC, такой как Виндзорский замок.

Чтобы начать, стоит взглянуть на снимки с экрана Джона Пола Бодхуда. Блог JPB

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

НУнит и Носорог хорошо сочетаются, а контейнер для автоматической пересмешки может представлять интерес.

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

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

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

Для макетной объектной библиотеки я нашел BSD-лицензионную Носорог.Издевается быть довольно приятным.

Я добился большого успеха, используя НАнит также хорошо.

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

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

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

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

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

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

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

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

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

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

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

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

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

Использовать NUnit с TFS не так уж сложно.Есть даже проект на codeplex для реализации этого: NUnit для создания команды который даже "публикует" результаты на складе.

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

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

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

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

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

Изолятор Typemock- Издевательский фреймворк для Модульное тестирование .Net

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

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

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

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

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

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