Вопрос

Написав небольшую статью о BDD, я получил вопросы от людей спрашивать, есть ли случаи широкомасштабного использования BDD (и конкретно NBehave).

Итак, мой вопрос к сообществу: есть ли у вас проект, который успешно использовал BDD? Если да, то какие выгоды вы получили и что могло быть лучше? Вы бы сделали BDD снова? Вы бы порекомендовали это другим людям?

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

Решение

Мы несколько использовали BDD на уровне кода в различных сценариях (проекты с открытым исходным кодом и ND).

<Ол>
  • Сообщаем представлению в сценарии MVC, какой тип ввода принимать от пользователя ( Проверка DDD и правил на основе правил в .NET )

    result = view.GetData(
      CustomerIs.Valid, 
      CustomerIs.From(AddressIs.Valid, AddressIs.In(Country.Russia)));
    
  • Сообщение сервисному уровню о поведении обработки исключений ( ActionPolicy вставляется в декораторы):

    var policy = ActionPolicy
      .Handle<WebException>()
      .Retry(3);
    
  • Использование этих подходов значительно уменьшило дублирование кода, сделало кодовую базу более стабильной и гибкой. Кроме того, все стало проще благодаря логической инкапсуляции сложных деталей.

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

    Я был в небольшой команде, которая использовала BDD на веб-сайте.

    То, как мы его использовали, было, по сути, TDD, но тесты просто написаны как поведения с использованием DSL. Мы не вдавались в масштабный предварительный дизайн поведения, но мы создали большое их количество и использовали их в точности так, как вы тестировали бы.

    Как и следовало ожидать, он работал как TDD, в целом хорошо. Фраза тестов как поведения была хорошей, когда они взаимодействовали с клиентами, и создавала довольно приличный документ, но мне хотелось бы, чтобы поведения были написаны на английском языке и тесты были запрограммированы вместо того, чтобы пытаться придумать какой-то сложный промежуточный язык, который не идеально подходит для любой цели.

    Это все равно было бы BDD, только без этой милой уловки - попытаться превратить язык в язык, обозначенный random_looking.set of_Punctuation скорее - чем simple.spaces, но это было только мое сварливое отношение старого программиста, все остальные были 100% доволен этим.

    Сайт доступен и полностью функционален, поэтому я бы назвал его успешным: Взгляните

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

    Между прочим, это не был проект с интерфейсом для глаз. Это был интеграционный проект, синхронизирующий данные из веб-службы в базе данных. Таким образом, это показывает, что GWT работает даже для не & Quot; глазного яблока & Quot; UIs.

    Я с большим успехом использовал стиль Context-Specification в нескольких проектах (используя MSpec). Я все еще пытаюсь понять реальные преимущества стиля Сценария. Чем больше я использую стиль спецификации контекста, тем больше он мне нравится, и тем труднее мои приложения.

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