Cucumber
​
Introduction To Cucumber & Basics
​
​
First Selenium Test And Mapping In Cucumber
​
​
​
​
​
​
​
​
​
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
package cucumberTest;
import org.junit.runner.RunWith;
import io.cucumber.junit.Cucumber;
​
​
-
Test Runner Class :
​
@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
​