Skip to main content

Cucumber Step Hooks

Step hooks invoked before and after a step. The hooks have "invoke around" semantics. Meaning that if a BeforeStep hook is executed the AfterStep hooks will also be executed regardless of the result of the step. If a step did not pass, the following step and its hooks will be skipped.

These 2 hooks are not used so frequently but there can be several application depending upon your usage:

  • collecting data - such as all external links
  • Screenshot if particular steps failed
  • Wait for peers to synchronise (using vector clocks or Lamport timestamps [order of events in a distributed computer system])
  • You to check if there is any javascript error after each step


Feature: Registration, Login and MyAccount
  Background: Titllrgdgdgd sgdgdsfg
    Given I am on the home page
    And I follow "Sign in"	  
  Scenario: Verify Login Functionality
    When I fill "email" with ""
    Then I fill "passwd" with "Test1234"  
    And I click on "Sign in"


public void bfs()
    System.out.println("Before Step is Executed");
public void afs()
    System.out.println("After Step is Executed");

Note: if Step "When I fill "email" with..." failed with some error then @BeforeStep and @AfterStep for next 2 steps starting with Then and And will not execute.

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.


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.