The Rule is an optional keyword in Cucumber that groups a set of Scenarios or communicate agreed restrictions about the coverage of the story.
- Supported in Cucumber: Rule was added in Gherkin v6 in late 2018. In Cucumber, it is an optional keyword available from the Cucumber 6 version. The purpose of the Rule keyword is to represent one business rule that should be implemented.
- Relation with Acceptance Criteria: A single rule is equal to one acceptance criterion. Acceptance criteria are a collection of rules which cover characteristics of a system’s behavior and from which scenarios can be derived.
- Group Scenarios: The Rule keyword is simply a grouping construct. It groups several scenarios that belong to the same business rule. Without its Scenarios, a Rule may be ambiguous. Without a Rule, a scenario lacks context. Together they fully specify the expected behavior of the product and guide the development team’s efforts.
- When to Add Rules: For each Rule, we may need one or more scenarios to explain it. A rule with many Scenarios might be over-complex. A Rule should contain one or more Scenarios that illustrate the particular Rule.
- Supported by IDEs and Tools: Modern IDEs can display scenarios grouped by Rule – and automation results are grouped by Rule as well.
- Tagging Rules: Since scenarios illustrate a rule, it would make sense for them to inherit any tags applied at the rule level. A scenario will inherit any Tags applied to the Rule that it illustrates and any Tags applied to the feature.
- Background in Rules: For each rule, You can have a separate Background section containing the common steps inherited by Scenarios grouped which are part of Rule.
Cucumber Rule Example
@Feature1
Feature: Feature 1
Background:
Given I am on the homepage
@Rule1
Rule: This is Rule 1
- Description Line 1
- Description Line 2
Background: Rule 1 Background
When I click on login link
Scenario: Scenario 1
Then I should see "Registration" link
Scenario: Scenario 2
Then I should see "Forgot Password" link
@Rule2
Rule: This is Rule 1
- Description Line 1
- Description Line 2
Background: Rule 2 background
When I click on Ask Doubt link
Scenario: Scenario 3
Then I should see "Ask Doubt" Heading
In above example
- Scenario 1 and Scenario 2 belong to Rule 1, and Scenario 3 is part of Rule 2.
- Rule 1 and Rule 2 are tagged and have their separate Background section.
- Log in to post comments