Importance of Background keyword in Cucumber Scenario

Dahun Yoo·2020년 7월 2일
0

본 내용은 cucumber-jvm을 대상으로 작성되었습니다.

Background

Background 키워드는, 어떠한 기본이 되는 시나리오 혹은 절차들을 하나로 정리한 것입니다. 모든 시나리오의 전제로 되어야하는 내용들이기도 합니다.

Background:
  Given Validate the browser
  When Browser is triggered
  Then Check if browser is started

위와 같이, Background 키워드를 작성하고, 내부는 일반 시나리오처럼 작성해줍니다.

Background keyword의 내용들도 stepDefinition을 작성해주어야할 필요가 있습니다.

@Given(Validate the browser”)
public void validateTheBrowser() {
    System.out.println(“validate the browser”);

}

@When("Browser is triggered")
public void browserIsTriggered() {
    System.out.println("browser is triggered");

}

@Then("Check if browser is started”)
public void checkIfBrowserIsStarted() {
    System.out.println(Browser is Displayed);
    System.out.println("Background keyword done ----------------");
}

작성한 background keyword들의 메소드들은, 해당 background가 선언된 feature file내부의 각각의 Scenario들이 실행되기 바로 직전에 실행됩니다.
즉, Scenario마다 한 번씩 실행됩니다.

모든 시나리오가 동일한 전제조건을, 배경을 가지고 있다는 것을 전제로 하고 실행시키는 것이 바로 background 입니다.

즉, background가 선언되지 않은 다른 feature파일에서는 실행되지 않습니다.


또한 Background keyword는 feature 파일의 최상단에서 선언되어야 합니다.

다만, feature file 내부에, 전제조건이 다른 케이스가 있다면...?? 못쓴다고 봐도 무방합니다. 그렇기 때문에 feature파일을 작성하기 전에, 테스트 케이스 설계 시 많은 조건들의 공통 사항을 찾아내고, 그것을 Background 로 도출해낼 수 있어야겠습니다.

profile
QA Engineer

0개의 댓글