[java] Java Cucumber에서 테스크나리오 작성 방법

소개

Cucumber는 BDD(Behavior Driven Development) 프레임워크로, 개발자와 비기술자 모두가 이해할 수 있는 자연어로 테스트 시나리오를 작성하고 실행할 수 있습니다. 이번 글에서는 Java에서 Cucumber를 사용하여 테스트 시나리오를 작성하는 방법을 알아보겠습니다.

준비 작업

  1. JDK 설치
  2. Maven 설치
  3. IDE(예: IntelliJ, Eclipse) 설치

프로젝트 설정

  1. Maven 프로젝트 생성

    mvn archetype:generate -DgroupId=com.example -DartifactId=cucumber-project -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
    
  2. Cucumber 의존성 추가

    Maven 프로젝트의 pom.xml 파일에 다음 의존성을 추가합니다:

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

테스트 시나리오 작성

Cucumber에서는 테스트 시나리오를 Feature 파일로 작성합니다. Feature 파일은 .feature 확장자를 가지며, feature 키워드로 시작합니다. 다음은 기본적인 Feature 파일의 구조입니다:

Feature: 테스트 명

  Scenario: 시나리오 명
    Given 주어진 조건
    When 특정 동작
    Then 기대 결과

Scenario는 여러 개의 테스트 시나리오를 포함할 수 있습니다.

Step Definitions 작성

Step Definitions는 Feature 파일에서 사용된 키워드에 대한 구체적인 동작을 정의하는 Java 메소드입니다. Step Definitions 클래스를 생성하고 다음과 같이 작성합니다:

package com.example;

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

public class StepDefinitions {

    @Given("주어진 조건")
    public void givenCondition() {
        // 주어진 조건에 대한 구현
    }

    @When("특정 동작")
    public void whenAction() {
        // 특정 동작에 대한 구현
    }

    @Then("기대 결과")
    public void thenResult() {
        // 기대 결과에 대한 구현
    }
}

테스트 실행

테스트를 실행하기 위해서는 해당 Step Definitions와 Feature 파일을 연결해야 합니다. 이를 위해 Cucumber Runner 클래스를 생성하고 다음과 같이 작성합니다:

package com.example;

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

@RunWith(Cucumber.class)
@CucumberOptions(features = "src/test/resources", glue = "com/example")
public class CucumberRunner {
    // 테스트 실행 옵션 설정
}

테스트를 실행하려면 JUnit 단위 테스트를 실행하는 방식으로 Cucumber Runner를 실행하면 됩니다.

결론

이제 Java에서 Cucumber를 사용하여 테스트 시나리오를 작성하는 방법을 알아보았습니다. Cucumber를 활용하면 비기술자와 개발자 간의 원활한 커뮤니케이션을 할 수 있으며, 효과적인 테스트 자동화를 구현할 수 있습니다.

참고 자료