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 테스트를 실행하면, 테스트 시나리오에 있는 각 스텝을 정의한 메서드가 실행됩니다.
위의 예시처럼 공통 스텝을 정의하고 사용함으로써, 중복 코드를 줄이고 효율적으로 테스트 시나리오를 작성할 수 있습니다.