[java] Java Cucumber에서 스텝 실행 전 후 처리하기

Java Cucumber는 BDD(Behavior-Driven Development)를 지원하는 테스트 프레임워크입니다. Cucumber를 사용하여 테스트 시나리오를 작성하고 이를 실행할 수 있습니다.

Cucumber에서는 Feature, Scenario, Step 등으로 구성된 테스트 시나리오를 작성합니다. 각각의 스텝을 실행하기 전이나 후에 필요한 작업을 처리할 수 있습니다.

이번 포스트에서는 Java Cucumber에서 스텝 실행 전 후에 처리할 수 있는 방법에 대해 알아보겠습니다.

Before와 After 어노테이션

Java Cucumber에서는 @Before 어노테이션과 @After 어노테이션을 사용하여 스텝 실행 전과 후에 필요한 작업을 정의할 수 있습니다. 이러한 어노테이션은 Cucumber Hooks라고도 불립니다.

import cucumber.api.java.Before;
import cucumber.api.java.After;

public class StepDefinitions {

    @Before
    public void setup() {
        // 스텝 실행 전에 수행할 작업
    }

    @After
    public void cleanup() {
        // 스텝 실행 후에 수행할 작업
    }
    
    // 스텝 정의 및 실행 코드
}

위의 코드에서 setup() 메서드는 각 스텝 실행 전에 호출되며, cleanup() 메서드는 각 스텝 실행 후에 호출됩니다. 따라서 이 두 메서드에 원하는 작업을 구현하면 됩니다.

예시: 스텝 실행 전 후에 브라우저 초기화 및 종료하기

아래의 예시는 Java Cucumber에서 스텝 실행 전과 후에 브라우저 초기화 및 종료 작업을 하는 방법을 보여줍니다.

import cucumber.api.java.Before;
import cucumber.api.java.After;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class StepDefinitions {

    private WebDriver driver;
  
    @Before
    public void setup() {
        System.setProperty("webdriver.chrome.driver", "path/to/chromedriver");
        driver = new ChromeDriver();
    }

    @After
    public void cleanup() {
        driver.quit();
    }
    
    // 스텝 정의 및 실행 코드
}

위의 코드에서 setup() 메서드에서는 Selenium의 WebDriver를 초기화하는 작업을 수행하고, cleanup() 메서드에서는 WebDriver를 종료하는 작업을 수행합니다. 이렇게 함으로써 각 스텝 실행 전에는 브라우저가 초기화되고, 각 스텝 실행 후에는 브라우저가 종료됩니다.

참고 자료