Какая лучшая среда BDD для работы с ASP.NET MVC 2 + C # 4? - PullRequest
7 голосов
/ 25 декабря 2009

Я только что услышал о BDD, когда смотрю видео Скотта Гатри в Швеции . Один из слушателей задал вопрос Скотту о том, как VS2010 и ASP.NET MVC поддерживают BDD.

После этого я ищу около BDD (Behavior Driven Development) , который фокусируется на спецификации больше, чем модульное тестирование, если сравнивать с TDD (Test Driven Development) . Я нашел некоторые рамки, которые работают с Ruby и Java. Но я не делаю ни одного известного фреймворка для .NET.

Пожалуйста, предложите мне информацию о структуре BDD и кратких ее плюсах и минусах.

PS. Предлагаемая среда BDD должна отлично работать на .NET 4, C # 4.0 и ASP.NET MVC 2.

Спасибо

Ответы [ 7 ]

13 голосов
/ 18 января 2010

Я вижу, что на этот вопрос уже есть ответ, и я не пробовал NBehave. Но мы используем MSpec (Machine.Specifications) для этого довольно крупного корпоративного проекта, и он у нас работает довольно хорошо. Очень стоит упомянуть.

Роб Конери сделал ОТЛИЧНОЕ видео на Learning BDD, где он использует MSpec, строка за строкой: (ссылка удалена, больше недоступна, но ищите ее)

Подробнее о MSpec от Роба Конери и о том, почему он его использует.
http://wekeroad.com/2009/09/21/make-bdd-your-bff-2/ Возможно, вы также захотите проверить и другие его сообщения с тегом BDD.

Плюсы:

  • Позволяет быстро «заглушить» всю историю, сценарии, контексты и спецификации - без какого-либо фактического кода. Давайте сосредоточимся на общем «Поведении», которое является целью BDD !, не беспокоясь о коде и его компиляции.
  • Создает ОТЛИЧНЫЙ отчет в формате HTML с надписью «<- NOT IMPLEMENTED» рядом с заглушенными спецификациями. Я часто передаю этот отчет: Клиенту (генеральный директор и технический директор), Тестерам, Новым ресурсам, которые я привожу в проект, и всем, кто хочет знать, как работает программное обеспечение - без необходимости показывать мне строку кода! </li>
  • В MSpec включены бегуны TestDriven.NET с использованием новой связи tdnet (без настройки!).
  • Атрибут [Behaviors] вместе с его типом делегата Behaves_like позволяет легко скопировать существующие спецификации из одного сценария в другой другой сценарий.

Минусы:

  • Документация практически отсутствует, хотя не требуется много (смотрите видео выше). Автор недавно написал в блоге о помощи по документированию.
  • Все еще новый, и просто побочный проект от автора (не его основной концерт). Но это очень активно с этого поста.

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

8 голосов
/ 12 мая 2010

Я бы рекомендовал попробовать SpecFlow Странно, что никто не упомянул об этом. Здесь есть отличная статья о с использованием BDD с Specflow и Asp.Net MVC Это с открытым исходным кодом и размещено на GitHub

Поток спецификаций использует синтаксис GWT (Given When Then), который мне лично очень нравится. До сих пор мы добились большого успеха с BDD, пытающимся реализовать его с помощью SpecFlow. Пока еще рано, но пока все идет хорошо.

Плюсы:

  1. Интегрируется в VS2008 и VS2010 с красивым плагином
  2. Использует популярный словарь Given When Then
  3. Использует стандартный NUnit Test Runner
  4. Файл функций позволяет просто вставлять сценарии от бизнес-аналитиков

Минусы:

  1. код функции немного уродлив, хотя ничего плохого
  2. Насколько я знаю, формат отчетности довольно ограничен (я просто использую NUnit)

Я призываю вас попробовать.

6 голосов
/ 05 февраля 2010

Я собрал StoryQ после того, как решил, что вам не нужно много фреймворка. Он очень легкий, встраивается в ваш существующий тестовый центр, проверьте его на http://storyq.codeplex.com

1 голос
/ 25 декабря 2009

Вы смотрели на NBehave ? Вы также, вероятно, хотите посмотреть на этот старый вопрос . Но я также хотел бы добавить, что ИМХО можно делать BDD с использованием любого вида инфраструктуры модульного тестирования. Простой и понятный способ - присвоить вашему «тестовому классу» что-то вроде «Given_X», а затем дать всем вашим «тестовым методам» имена, например «It_should_Y».

0 голосов
/ 07 февраля 2018

Попробуйте это: https://www.nuget.org/packages/Heleonix.Testing.NUnit Он работает с NUnit, но предоставляет синтаксис, такой как Jasmine или Jest в JavaScript, в стилях Given / When / Then и Arrange / Act / Assert

0 голосов
/ 20 мая 2014

Знаете ли вы видео Goiko Adzic о том, как сделать BDD на простом английском языке, используя Concordion.NET ?

http://gojko.net/2009/09/01/acceptance-testing-in-plain-english-with-concordion-net/

0 голосов
/ 02 апреля 2012

Storevil

Очень легкий вес http://code.google.com/p/storevil/

...