Features and Scenarios¶
Every *.feature file conventionally consists of a single feature. Lines starting with the keyword Feature: (or its localized equivalent) followed by three indented lines starts a feature. A feature usually contains a list of scenarios. You can write whatever you want up until the first scenario, which starts with Scenario: (or localized equivalent) on a new line. You can use Tags to group features and scenarios together, independent of your file and directory structure.
Every scenario consists of a list of Steps, which must start with one of the keywords Given, When, Then, But or And (or a localized version of one of these). Behat treats them all the same, but you shouldn’t. Here is an example:
Feature: Serve coffee In order to earn money Customers should be able to buy coffee at all times Scenario: Buy last coffee Given there are 1 coffees left in the machine And I have deposited 1 dollar When I press the coffee button Then I should be served a coffee
In addition to basic Scenarios, features may contain Scenario Outlines and Backgrounds.
Scenarios are one of the core Gherkin structures. Every scenario starts with the Scenario: keyword (or localized keyword), followed by an optional scenario title. Each feature can have one or more scenarios and every scenario consists of one or more Steps.
The following scenarios each have 3 steps:
Scenario: Wilson posts to his own blog Given I am logged in as Wilson When I try to post to "Expensive Therapy" Then I should see "Your article was published." Scenario: Wilson fails to post to somebody else's blog Given I am logged in as Wilson When I try to post to "Greg's anti-tax rants" Then I should see "Hey! That's not your blog!" Scenario: Greg posts to a client's blog Given I am logged in as Greg When I try to post to "Expensive Therapy" Then I should see "Your article was published."
- Previous chapter
- The Gherkin Language
- Next chapter
- Initialize a New Behat Project