SpecFlow / BDD с ASP.NET MVC - PullRequest
       5

SpecFlow / BDD с ASP.NET MVC

2 голосов
/ 31 июля 2010

Я новичок в BDD, и с помощью SpecFlow я пытаюсь разработать эффективную, организованную и поддерживаемую методологию (для использования в ASP.NET MVC). Основные области, которые мне нужно улучшить:

  • Группировка шагов (в файлы шагов)

  • Повторное использование тестовых объектов (как это легко сделать в модульных тестах, наследуя базовые классы тестов и т. Д.)

  • Структура папок

когда дело доходит до группировки, давайте рассмотрим типичный сценарий CRUD. Например:

  • папка для каждой «области» в моем проекте, например, общедоступная, управление сайтом

  • папка функций и папка шагов внутри каждой из них

И затем внутри этих папок у меня есть один файл Feature, охватывающий весь процесс CRUD для определенного объекта, например NewsItem. Я пошел по этому пути, чтобы я мог повторно использовать объекты и NewsController в моих шагах.

Но это означает, что файлы шагов становятся довольно большими, охватывающими все типы допустимых, недопустимых возможностей ввода, и очень трудно следовать одному сценарию до конца. Но если я этого не сделаю, я не могу повторно использовать шаги, которые могут быть применимы к нескольким сценариям во всем процессе CRUD.

Я понимаю, что это очень субъективно, и я не боюсь быть ошеломленным рядом различных идей и перспектив - вот чего я хочу: P

Как и ваши собственные мнения и предпочтения, ссылки на блоги и книги были бы хорошими.

Спасибо

Ник

1 Ответ

3 голосов
/ 23 августа 2010

Извините, никто не ответил на это целую вечность.Если это все еще полезно для вас, это может помочь.

Я держу свои шаги на очень высоком уровне: см. Этот вопрос Обязательные и декларативные шаги в группе Rspec

Iшаги по проблемным областям.Представьте, что вы вошли в систему и выполнили какое-то действие, а затем снова вышли из системы.Или, может быть, еду домой на день.Все, что я мог бы сделать за один сеанс, становится предметом озабоченности.Например, если я владелец зоомагазина, у меня могут быть файлы шагов для: обработки домашних животных на складе, обработки аксессуаров и другого инвентаря, продажи предметов, отслеживания прибыли и т. Д.

У меня также есть экран / страницапарадигма скорее похожа на WebDriver.Это означает, что если шаг на самом деле делает несколько вещей в пользовательском интерфейсе, есть один экран или страница, которая обрабатывает все эти действия.

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

http://code.google.com/p/wipflash/source/browse/Example.PetShop.Scenarios/PetRegistrationAndPurchase.cs

Я еще не особо разбирался со SpecFlow, но я представляюэто может быть полезно для вас.Это тот же шаблон проектирования, который я также использовал с JBehave или Fitnesse.NET и FitSharp.

Удачи!Есть группа BDD http://groups.google.com/group/behaviordrivendevelopment, которая может помочь вам, если вам нужна дополнительная информация.

...