[java] Java Cucumber에서 스텝 정의하기

Cucumber는 BDD(Behavior-Driven Development) 프레임워크로, 비즈니스 요구사항을 자연어로 작성된 시나리오로 바꾸어 프로그래밍 가능한 스텝으로 변환해줍니다. 이 문서에서는 Java로 작성된 Cucumber에서 스텝을 정의하는 방법을 알아보겠습니다.

Cucumber 스텝 정의

Cucumber에서 스텝 정의란, 시나리오에서 작성된 각 단계를 실제로 구현하는 Java 메소드입니다. 이 메소드는 @Given, @When, @Then 등의 어노테이션을 사용하여 Cucumber가 해당 메소드를 찾아 실행할 수 있도록 지정합니다.

스텝 정의 예제

아래는 Cucumber에서 간단한 스텝을 정의하는 예제입니다.

import cucumber.api.java.en.Given;
import cucumber.api.java.en.When;
import cucumber.api.java.en.Then;

public class StepDefinitions {
    @Given("^사용자가 로그인 페이지에 접속한다$")
    public void user_visits_login_page() {
        // 로그인 페이지에 접속하는 코드 작성
    }

    @When("^사용자가 유효한 아이디와 비밀번호를 입력한다$")
    public void user_enters_valid_credentials() {
        // 유효한 아이디와 비밀번호를 입력하는 코드 작성
    }

    @Then("^로그인이 성공한다$")
    public void login_is_successful() {
        // 로그인이 성공했을 때 실행되는 코드 작성
    }
}

위의 예제에서 @Given, @When, @Then 어노테이션은 해당 메소드가 각각 Given, When, Then 키워드로 시작하는 스텝을 구현함을 나타냅니다. 실제로는 정규식을 사용하여 시나리오의 텍스트 패턴과 일치하는 경우 해당 스텝이 실행됩니다.

실행하기

위의 예제를 실행하기 위해서는 Cucumber와 해당 프로젝트에 필요한 의존성을 추가해야 합니다. Maven을 사용하는 경우, pom.xml에 다음과 같이 의존성을 추가할 수 있습니다.

<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-java</artifactId>
    <version>버전</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>버전</version>
    <scope>test</scope>
</dependency>

의존성을 추가한 후에는 JUnit 테스트를 실행하는 방식으로 Cucumber 스텝을 실행할 수 있습니다.

참고 자료