[java] Java Cucumber에서 데이터 CRUD 테스트 실행하기

Java Cucumber는 행동 주도 개발(Behavior Driven Development, BDD) 원칙에 따라 작성된 자동화된 테스트를 지원하는 도구입니다. 이를 활용하여 데이터의 생성, 조회, 수정, 삭제 (CRUD) 작업을 테스트하는 방법에 대해 알아보겠습니다.

필요한 도구 설치

Java Cucumber를 사용하기 위해서는 다음과 같은 도구들을 설치해야 합니다.

  1. Java Development Kit(JDK) - Java 실행 환경
  2. Maven - Java 프로젝트 관리 도구
  3. Cucumber - BDD 테스트 프레임워크

프로젝트 설정

먼저, Maven을 사용하여 Java 프로젝트를 생성합니다. 프로젝트 디렉토리에서 다음 명령어를 실행하여 Maven 프로젝트를 생성합니다.

mvn archetype:generate -DgroupId=com.example -DartifactId=cucumber-example -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

이후, 생성된 프로젝트 디렉토리로 이동하여 pom.xml 파일을 열고 다음 의존성을 추가합니다.

<dependencies>
  <!-- Cucumber -->
  <dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-java</artifactId>
    <version>6.11.0</version>
    <scope>test</scope>
  </dependency>
  
  <!-- Cucumber JUnit -->
  <dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>6.11.0</version>
    <scope>test</scope>
  </dependency>
</dependencies>

테스트 작성

테스트는 .feature 파일에 작성되며, 특정 기능에 대한 시나리오를 기술합니다. 예를 들어, “데이터 생성” 기능에 대한 시나리오를 작성하려면 data_crud.feature 파일을 생성하고 다음과 같이 작성합니다.

Feature: 데이터 CRUD

  Scenario: 데이터 생성
    Given 사용자는 데이터를 생성할 수 있다
    When 사용자는 데이터를 입력한다
    Then 데이터는 데이터베이스에 저장되어야 한다

이후에는 실행할 테스트에 해당하는 스텝 정의 클래스를 작성합니다. src/test/java/com/example/stepdefs/CRUDStepDefs.java 파일을 생성하고 다음과 같이 작성합니다.

package com.example.stepdefs;

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

public class CRUDStepDefs {

  @Given("사용자는 데이터를 생성할 수 있다")
  public void 사용자는_데이터를_생성할_수_있다() {
    // 데이터 생성 가능한 상태 설정
  }

  @When("사용자는 데이터를 입력한다")
  public void 사용자는_데이터를_입력한다() {
    // 데이터 입력 로직 실행
  }

  @Then("데이터는 데이터베이스에 저장되어야 한다")
  public void 데이터는_데이터베이스에_저장되어야_한다() {
    // 데이터가 데이터베이스에 저장되었는지 확인
  }
}

테스트 실행

모든 설정과 테스트 코드가 작성되었으면, 다음 명령어를 사용하여 테스트를 실행할 수 있습니다.

mvn test

테스트 실행 결과가 성공적으로 출력되면, 데이터 CRUD 테스트가 성공적으로 실행된 것입니다. 필요한 경우 추가적인 시나리오와 스텝 정의를 작성하여 다양한 테스트를 구현할 수 있습니다.

참고 자료