Разговоры в BDD важнее инструментов. Вместо того, чтобы начинать с мелкозернистой спецификации в примере Куржетта, попробуйте сначала поговорить с бизнесом. Спросите их, какой пример поведения они хотят.
Когда вы записываете это, начните с того, что просто пишите так, как они его описывают. Удивительно, как мало людей слушают правильно! После того, как вы получили пример от них, взгляните на него. Можете ли вы увидеть, какие биты являются контекстами (Givens) и каковы результаты (Thens)? Какой шаг связан с тем, чтобы вызвать интересующее вас поведение (Когда)?
Как только вы это выясните, есть еще пара вопросов, которые я хотел бы задать:
- Есть ли какой-то другой контекст, который для этого же события дает другой результат?
- Есть ли какой-либо другой важный результат?
Например, если я выполнялтакое поведение для большого супермаркета, я мог бы встретить такой пример:
«О! Нет, не добавляйте продукты обратно на склад. Мы не знаем, как они были сохранены. Мы возвращаем деньги. это если что-то не так, но мы это делаем. "
Вы, вероятно, можете увидеть, как это может изменить ваш код!
Тестеры действительно хороши в том, чтобы задавать эти вопросы и определятьпропущенные сценарии! Это приводит нас к схеме «Три Амигоса». Мне нравится включать:
- Деловой человек, Владелец продукта, эксперт по предмету или лицо с проблемой
- Тестер
- Дев (или параdevs).
Вы также можете включить дизайнеров пользовательского интерфейса, технических писателей и т. д. - Мэтт Винн говорит, что это «Три Амигоса, где три - это число от 3 до 7».
IМне действительно нравится, когда разработчик записывает сценарии в любой форме, которая позволяет им перейти к «Дано, Когда, Тогда». Иногда я делаю это на собрании;иногда я делаю это позже и показываю это или отправляю это своему деловому человеку.
Пример Коргетта - это то, что обычно случается, когда люди не разговаривают. Если вы начнете с разговоров, у вас гораздо больше шансов получить что-то, что соответствует приведенному выше. Мало того, что эти декларативные шаги легче для бизнеса и для всей команды, чтобы говорить, но они также легче поддерживать, поскольку детали того, как они достигнуты, скрыты (обычно в Определениях шагов, и далее в Page. Объекты).
В моем блоге есть все виды полезных постов для новичков BDD , если вы хотите узнать больше!