[java] Java Cucumber에서 파일 업로드 테스트 실행하기

Cucumber는 Java 기반의 테스트 자동화 도구로, BDD(Behavior Driven Development) 방식으로 테스트를 작성할 수 있습니다. 파일 업로드 테스트도 Cucumber를 통해 쉽게 실행할 수 있습니다. 이번 글에서는 Java Cucumber에서 파일 업로드 테스트를 실행하는 방법에 대해 알아보겠습니다.

1. Maven 또는 Gradle을 통한 Cucumber 설치

먼저 프로젝트에 Cucumber를 설치해야 합니다. Maven을 사용하는 경우 pom.xml 파일에 다음 의존성을 추가합니다.

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

Gradle을 사용하는 경우 build.gradle 파일에 다음 내용을 추가합니다.

dependencies {
    testImplementation 'io.cucumber:cucumber-java:6.10.4'
    testImplementation 'io.cucumber:cucumber-junit:6.10.4'
}

2. Feature 파일 작성하기

Cucumber에서는 테스트 시나리오를 작성한 .feature 파일을 사용합니다. 파일 업로드 테스트를 위한 예시 feature 파일을 작성해보겠습니다.

example.feature

Feature: 파일 업로드 테스트

  Scenario: 파일 업로드 기능 확인
    Given 사용자는 파일 업로드 페이지에 접속한다
    When 사용자는 파일을 선택하여 업로드한다
    Then 파일이 성공적으로 업로드되었는지 확인한다

3. Step Definitions 작성하기

.feature 파일에 작성한 시나리오를 실제로 실행하기 위해 Step Definitions을 작성해야 합니다. 파일 업로드를 위한 Step Definitions을 작성해보겠습니다.

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

public class FileUploadStepDefinitions {

    @Given("사용자는 파일 업로드 페이지에 접속한다")
    public void accessFileUploadPage() {
        // 파일 업로드 페이지에 접속하는 코드 작성
    }

    @When("사용자는 파일을 선택하여 업로드한다")
    public void selectAndUploadFile() {
        // 파일 선택 및 업로드하는 코드 작성
    }
    
    @Then("파일이 성공적으로 업로드되었는지 확인한다")
    public void verifyFileUpload() {
        // 업로드된 파일을 확인하는 코드 작성
    }
}

4. Runner 클래스 작성하기

마지막으로, Cucumber 테스트를 실행하기 위한 Runner 클래스를 작성해야 합니다.

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

@RunWith(Cucumber.class)
@CucumberOptions(features = "path/to/feature/file",
                 glue = "package.name.of.step.definitions")
public class FileUploadTestRunner {

}

features 옵션에는 작성한 .feature 파일의 경로를, glue 옵션에는 Step Definitions 클래스의 패키지 경로를 지정합니다.

5. 테스트 실행하기

모든 설정이 완료되었으면 파일 업로드 테스트를 실행할 준비가 되었습니다. Maven이나 Gradle을 통해 테스트를 실행하거나, IDE에서 직접 테스트를 실행할 수 있습니다.

위에서 작성한 Runner 클래스를 실행하면 Cucumber가 .feature 파일의 시나리오를 읽어와서 Step Definitions과 매칭하여 테스트를 수행합니다.

이렇게 Java Cucumber를 활용하여 파일 업로드 테스트를 실행할 수 있습니다. Cucumber는 BDD 방식으로 테스트를 작성하기 때문에 테스트 코드를 더욱 가독성 있게 작성할 수 있습니다.