[java] Java Cucumber에서 로그인 테스트 실행하기

Cucumber는 자바 기반의 테스트 자동화 도구로, BDD(Behavior Driven Development)를 지원합니다. 이를 통해 개발자와 비개발자 사이의 소통을 원활하게 할 수 있습니다.

이번에는 Cucumber를 사용하여 로그인 기능을 테스트하는 방법을 알아보겠습니다.

1. 프로젝트 설정

먼저, Cucumber를 프로젝트에 추가해야 합니다. pom.xml 파일에 다음 dependencies를 추가하세요.

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

2. Feature 파일 작성하기

Cucumber에서는 기능을 정의하는 feature 파일을 작성해야 합니다. src/test/resources 디렉토리에 login.feature 파일을 만들고 다음 내용을 작성하세요.

Feature: 로그인 기능

  Scenario: 유효한 아이디와 패스워드로 로그인
    Given 앱이 실행되어 있음
    When 유효한 아이디 "test_user"와 패스워드 "test_password"로 로그인
    Then 로그인이 성공함

  Scenario: 잘못된 아이디로 로그인
    Given 앱이 실행되어 있음
    When 잘못된 아이디 "wrong_user"와 패스워드 "test_password"로 로그인
    Then 로그인이 실패함

3. Step Definitions 작성하기

Feature 파일에서 정의한 각 단계마다 Step Definitions를 작성해야 합니다. src/test/java 디렉토리에 LoginSteps.java 파일을 만들고 다음 내용을 작성하세요.

import io.cucumber.java.en.Given;
import io.cucumber.java.en.Then;
import io.cucumber.java.en.When;
import static org.junit.Assert.*;

public class LoginSteps {

    @Given("앱이 실행되어 있음")
    public void 앱이_실행되어_있음() {
        // 앱 실행 로직 작성
    }

    @When("유효한 아이디 {string}와 패스워드 {string}로 로그인")
    public void 유효한_아이디_와_패스워드_로_로그인(String username, String password) {
        // 로그인 로직 작성
    }

    @When("잘못된 아이디 {string}와 패스워드 {string}로 로그인")
    public void 잘못된_아이디_와_패스워드_로_로그인(String username, String password) {
        // 로그인 로직 작성
    }

    @Then("로그인이 성공함")
    public void 로그인이_성공함() {
        // 로그인 성공 검증 로직 작성
    }

    @Then("로그인이 실패함")
    public void 로그인이_실패함() {
        // 로그인 실패 검증 로직 작성
    }

}

4. 테스트 실행하기

이제 Cucumber를 실행하여 테스트를 수행할 수 있습니다. src/test/java 디렉토리에 RunCucumberTest.java 파일을 만들고 다음 내용을 작성하세요.

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

@RunWith(Cucumber.class)
@CucumberOptions(features = "src/test/resources/login.feature")
public class RunCucumberTest {
}

이제 테스트를 실행하려면 RunCucumberTest를 실행하면 됩니다.

결론

이상으로 Java Cucumber를 사용하여 로그인 테스트를 실행하는 방법을 알아보았습니다. Cucumber를 활용하면 개발과 테스트 사이의 원활한 소통과 테스트 자동화를 할 수 있습니다.

더 자세한 내용은 다음 참조를 확인하세요: