<dependencies>
<!-- Cucumber JVM -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>6.11.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>6.11.0</version>
<scope>test</scope>
</dependency>
<!-- JUnit 4 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
</dependencies>
gherkin
Feature: Calculator
Scenario: Add two numbers
Given I have a calculator
When I add 2 and 3
Then the result should be 5
import io.cucumber.java.en.Given;
import io.cucumber.java.en.When;
import io.cucumber.java.en.Then;
public class CalculatorSteps {
private int result;
private Calculator calculator;
@Given("I have a calculator")
public void iHaveACalculator() {
calculator = new Calculator();
}
@When("I add {int} and {int}")
public void iAddNumbers(int num1, int num2) {
result = calculator.add(num1, num2);
}
@Then("the result should be {int}")
public void theResultShouldBe(int expectedResult) {
assertEquals(expectedResult, result);
}
}
import org.junit.runner.RunWith;
import io.cucumber.junit.Cucumber;
import io.cucumber.junit.CucumberOptions;
@RunWith(Cucumber.class)
@CucumberOptions(features = "classpath:features")
public class CalculatorTest {
}