Написанные вами сценарии довольно низкого уровня. Если вы на самом деле не создаете безопасный вход в систему для продажи, я бы остановился на счастливом случае, а все остальное провел единичное / ручное тестирование. Если вы этого не сделаете, вы создадите так много сценариев, что это станет кошмаром для обслуживания.
Выясните, что отличает создаваемый вами продукт от всех похожих продуктов, а затем нацельтесь на это как на ценность сценария. Тогда это будет выглядеть так:
Given Fred is logged in
When Fred <does something>
Then Fred should <get some really differentiating value>
And <something else happens>
Придерживайтесь действительно высокоуровневых возможностей, а не низкоуровневых шагов на основе форм. Например:
Given there is already a question on BDD and Cucumber
Given Peyote is logged in
When Peyote proposes a question on BDD and Cucumber
Then Peyote should see other questions on BDD and Cucumber.
Существует концепция под названием «Парадигма страницы», в которой вы создаете класс со всеми низкоуровневыми шагами, которые может выполнять страница или экран. Затем вы можете вызвать эти низкоуровневые шаги на странице из более высокоуровневых приспособлений для шагов Cucumber.
Ваш бизнес будет гораздо более заинтересован в подобных сценариях. Основная цель BDD - не создавать автоматические тесты, а обсуждать сценарии, чтобы вы могли выяснить, где вы ошибаетесь, и какие другие варианты вы могли бы рассмотреть, прежде чем приступить к реализации кода. Автоматические тесты - хороший побочный продукт.
Беседы и обучение, которое вы получаете, рассказывая о них, - вот то, что отличает BDD от ATDD (разработка, основанная на приемочных тестах). Вот почему мы используем такие языки, как Пример, Сценарий, Учитывая, Когда, Затем, Контекст, Событие, Результат вместо Тест, SetUp, TearDown, Act, Arrange, Assert - поэтому мы можем поговорить об этом с бизнесом, бакалаврами и тестировщиками на одном языке.
См. статью Дэна Норта о преднамеренном открытии и остальные его блог, и удачи вам с BDD!
person
Lunivore
schedule
14.12.2010