Помимо декларативного/императивного вопроса, подумайте, какое требование вы описываете. По этой причине я считаю полезным включать Scenario:
в примеры. Очень необычно иметь так много деталей в заданном шаге.
Вы тестируете создание заказа (догадка)? Если это так, то ваши шаги ввода/выбора должны быть когда в сценарии, так что-то вроде:
Scenario: Create a new order
Given I have gone to the URL
When I enter the NRIC/FIN: <NRIC/FIN>
And I choose the first available Handset Colour
And I enter <Full Name> as Name
Then my new order should be confirmed (or whatever)
Однако, если вы создаете заказ просто для того, чтобы настроить сценарий для проверки чего-то еще, вы можете обмануть и просто указать, что заказ должен существовать:
Scenario: Check the status of an order
Given that I have created an order:
| NRIC/FIN | Colour | Full Name |
| xxxxx | Red | John Doe |
When I check the status of my order
Then I should see a new order...
Это зависит от автоматизации, щелкает ли она по экранам, чтобы создать этот заказ, или просто вставляет его в базу данных, важно только то, что к тому времени, когда вы доберетесь до «Когда», заказ должен существовать.
В идеальном мире BDD корнишоны должны быть написаны до реализации, но часто это не работает. Я до сих пор считаю полезным попытаться притвориться, что пишу Особенности в этом идеальном мире. Спрашивая: «Как бы я написал это до того, как мы начали разработку?» может помочь отделить фактические требования (я могу ввести заказ) от деталей реализации (я нажимаю «Далее» после ввода каждого элемента данных).
person
James McCalden
schedule
16.12.2013