[java] Java Cucumber 사용법

Cucumber는 BDD(Behavior-Driven Development) 프레임워크로, 사람들이 이해할 수 있는 스크립트로 소프트웨어 동작을 기술할 수 있도록 도와줍니다. 이번 포스트에서는 Java에서 Cucumber를 사용하는 방법에 대해 알아보겠습니다.

1. 의존성 추가하기

먼저, 프로젝트에 Cucumber 의존성을 추가해야 합니다. Maven을 사용한다면 pom.xml 파일에 다음 의존성을 추가해주세요:

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

2. 테스트 시나리오 작성하기

Cucumber는 Feature 파일을 사용하여 테스트 시나리오를 작성합니다. Feature 파일은 .feature 확장자를 가지며, Given-When-Then 구조로 이루어져 있습니다. 예를 들어, 다음과 같은 Feature 파일을 작성해봅시다:

Feature: 검색 기능 테스트

  Scenario: 검색 결과 확인
    Given 사용자가 검색 서비스를 이용한다
    When 검색어 "Cucumber"를 입력한다
    Then 검색 결과에 "Cucumber"가 포함되어야 한다

3. Step Definitions 작성하기

Step Definitions는 Feature 파일에서 작성한 테스트 시나리오의 각 단계를 실제로 수행하는 코드입니다. Step Definitions를 작성하려면 *.java 파일을 생성한 후, 다음 코드를 추가해주세요:

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

public class StepDefinitions {

    @Given("사용자가 검색 서비스를 이용한다")
    public void 사용자가_검색_서비스를_이용한다() {
        // 검색 서비스 초기화 등 필요한 설정을 수행
    }

    @When("검색어 {string}를 입력한다")
    public void 검색어를_입력한다(String keyword) {
        // 검색어 입력 로직 구현
    }

    @Then("검색 결과에 {string}가 포함되어야 한다")
    public void 검색_결과에_포함되어야_한다(String expected) {
        // 검색 결과 확인 로직 구현
    }
}

4. Cucumber 테스트 실행하기

테스트를 실행하려면 CucumberRunner 클래스를 생성하고, @CucumberOptions 어노테이션을 사용하여 테스트 실행 옵션을 설정해야 합니다. 예를 들어, 다음과 같은 CucumberRunner 클래스를 생성하고 실행해봅시다:

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

@RunWith(Cucumber.class)
@CucumberOptions(features = "src/test/resources/features", glue = "com.example.stepdefinitions")
public class CucumberRunner {
    // Test runner 클래스
}

CucumberRunner 클래스를 실행하면, Cucumber는 Feature 파일에 정의된 테스트 시나리오를 읽어와서 Step Definitions와 매칭시킨 후 실행합니다.

결론

위에서 설명한 방법을 따라하면 Java에서 Cucumber를 사용하여 BDD 테스트를 작성하고 실행할 수 있습니다. Cucumber를 사용하면 비즈니스 요구사항을 이해하기 쉽고 가독성이 뛰어난 테스트 코드를 작성할 수 있습니다.

더 자세한 내용은 Cucumber 공식 문서를 참고하시기 바랍니다.