Cucumber Step Hooks

Profile picture for user devraj

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.