Skip to main content

Cucumber Rule Keyword

The Rule is an optional keyword in Cucumber that groups a set of Scenarios or communicate agreed restrictions about the coverage of the story.

Cucumber Rule Keyword

  1. 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.
  2. 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.
  3. 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.
  4. 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. 
  5. Supported by IDEs and Tools: Modern IDEs can display scenarios grouped by Rule – and automation results are grouped by Rule as well.
  6. 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. 
  7. 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.

Video Tutorial: Rule Keyword in Cucumber

Submitted by tgoswami on August 30, 2020

Tarun has 11+ years of experience in Quality Assurance in different domains like Banking, E-commerce, Health and Education.

About

At ProgramsBuzz, you can learn, share and grow with millions of techie around the world from different domain like Data Science, Software Development, QA and Digital Marketing. You can ask doubt and get the answer for your queries from our experts.