top of page

Cucumber Tutorial

Cucumber Hooks

What Are Hooks In Cucumber ?

Hooks are the blocks of code that run before and after each scenario. It can be defined in step-definition. It enables us to manage the code workflow and also to reduce the code redundancy.
'@Before' and '@After' are the hooks in cucumber. We can add multiple hooks in step-definition and the default execution of hooks is in alphabetical order. Let's understand it with an example :
  • Step-definition :

package stepdefinitions; import io.cucumber.java.After; import io.cucumber.java.Before; import io.cucumber.java.en.Given; public class HooksExample { @Before public void beforeScenario() { System.out.println("\nThis will run before each scenario"); } @After public void afterScenario() { System.out.println("This will run after each scenario\n"); } @Given("^Run step of scenario 1$") public void run_Scenario_I() throws Throwable { System.out.println("Runnig step of Scenario 1"); } @Given("^Run step of scenario 2$") public void run_Scenario_II() throws Throwable { System.out.println("Runnig step of Scenario 2"); } }



  • Feature file :

Feature: Hooks Example Scenario: Scenario 1 is included Given Run step of scenario 1 Scenario: Scenario 2 is included Given Run step of scenario 2

  • Test Runner Class :

package cucumberTest; import org.junit.runner.RunWith; import io.cucumber.junit.Cucumber; ​ @RunWith(Cucumber.class) @io.cucumber.junit.CucumberOptions( features = "Features/featureTag.feature" ,glue={"stepdefinitions"} ) ​ public class TestRunnerForHooks { } ​

Output :

This will run before each scenario Runnig step of Scenario 1 This will run after each scenario This will run before each scenario Runnig step of Scenario 2 This will run after each scenario

Refer next page Tagged Hooks In Cucumber
bottom of page