[java] Java Cucumber에서 공통 스텝 만들기

Cucumber는 행위 기반 테스트 프레임워크로, Gherkin 언어를 사용하여 비즈니스 요구 사항을 테스트 가능한 시나리오로 작성할 수 있습니다. Java로 Cucumber를 사용할 때, 공통 스텝을 만들어서 중복 코드를 줄일 수 있습니다. 이 글에서는 Java Cucumber에서 공통 스텝을 만드는 방법을 알아보겠습니다.

Cucumber에서 공통 스텝을 만들기 위해 다음 단계를 따르세요:

1. 공통 스텝을 정의하는 클래스 생성

먼저, 공통 스텝을 정의하기 위한 클래스를 생성해야 합니다. 이 클래스는 Cucumber 스탭 정의 어노테이션(@Given, @When, @Then 등)을 사용하여 스텝 정의 메서드를 작성합니다. 예를 들면 다음과 같습니다:

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

public class CommonSteps {

    @Given("^로그인 페이지로 이동한다$")
    public void navigateToLoginPage() {
        // 로그인 페이지로 이동하는 코드 작성
    }

    @When("^사용자가 \"(.*)\" 아이디로 로그인한다$")
    public void loginWithUsername(String username) {
        // 지정된 아이디로 로그인하는 코드 작성
    }

    @Then("^로그인이 성공적으로 수행되어 홈페이지로 이동한다$")
    public void verifyHomePage() {
        // 홈페이지로 이동하는 코드 작성
    }
}

2. 스텝 정의 클래스를 Cucumber 테스트에 추가

다음으로, 생성한 스텝 정의 클래스를 Cucumber 테스트에 추가해야 합니다. Cucumber 테스트에서는 ‘glue’ 옵션을 사용하여 스텝 정의 클래스의 패키지 경로를 지정합니다.

import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
import org.junit.runner.RunWith;

@RunWith(Cucumber.class)
@CucumberOptions(
        features = "src/test/resources/features",
        glue = "com.example.steps"
)
public class RunCucumberTest {
    // 테스트 실행 로직
}

3. 테스트 시나리오에서 공통 스텝 사용

이제 공통 스텝을 사용하여 테스트 시나리오를 작성할 수 있습니다. 테스트 시나리오에서는 공통 스텝을 사용하는 스텝 정의 어노테이션(@Given, @When, @Then)을 사용하면 됩니다.

Feature: 로그인 기능 테스트

  Scenario: 유효한 아이디로 로그인하기
    Given 로그인 페이지로 이동한다
    When 사용자가 "test_user" 아이디로 로그인한다
    Then 로그인이 성공적으로 수행되어 홈페이지로 이동한다

위의 예시에서는 ‘로그인 페이지로 이동한다’, ‘사용자가 “test_user” 아이디로 로그인한다’, ‘로그인이 성공적으로 수행되어 홈페이지로 이동한다’는 공통 스텝이 사용되고 있습니다.

이제 공통 스텝을 사용하여 Cucumber 테스트를 실행하면, 테스트 시나리오에 있는 각 스텝을 정의한 메서드가 실행됩니다.

위의 예시처럼 공통 스텝을 정의하고 사용함으로써, 중복 코드를 줄이고 효율적으로 테스트 시나리오를 작성할 수 있습니다.

참고 자료