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
Scenario
Feature: Registration, Login and MyAccount
Background: Titllrgdgdgd sgdgdsfg
Given I am on the home page
And I follow "Sign in"
@sanity
Scenario: Verify Login Functionality
When I fill "email" with "goswami.tarun77@gmail.com"
Then I fill "passwd" with "Test1234"
And I click on "Sign in"
Hooks
@BeforeStep
public void bfs()
{
System.out.println("Before Step is Executed");
}
@AfterStep
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.