Importance of Regular expression in StepDefinition file

Dahun Yoo·2020년 6월 18일
0


실행하면서 Feature file의 scenario를 추가해나가다 보면, scenario자체는 다른 scenario에서도 충분히 쓸만한, 데이터만 다르고 하는 동작은 동일한 step이 많이 발생할 것 입니다.

특정 데이터를 feature파일에서 사용한다고 했을 때.

Scenario: Home page default login
  Given User is on NetBanking landing page
  When User login into application with John and 4321
  Then Homepage is populated
  And Cards are not displayed

Scenario: Home page default login
  Given User is on NetBanking landing page
  When User login into application with Jin and 1234
  Then Homepage is populated
  And Cards are displayed

테스트케이스가 많아지면 많아질 수록 Step definition내부의 메소드들을 관리하기가 힘들어집니다.
특히 when 절 같은 경우에는, 사람 이름과 번호만 다를 뿐, 하는 동작은 동일합니다.
즉 파라미터만 다르고 나머지는 같다는 것.

@When(User login into application with {string} and {string})
public void userLoginIntoApplicationWithAnd(String arg0, String arg1) {
}

Step definition file에서 위와 같이, Annotation을 지정해주시고, parameter를 받아들이게끔 설정해주시면 충분히 재사용이 가능합니다.

Scenario: Home page default login
  Given User is on NetBanking landing page
  When User login into application with "John" and "4321"
  Then Homepage is populated
  And Cards are not displayed

Scenario: Home page default login
  Given User is on NetBanking landing page
  When User login into application with "Jin" and "1234"
  Then Homepage is populated
  And Cards are displayed

위와 같이 더블 쿼테이션으로 묶어주면, 파라미터화 됩니다.
이 외에도, 정규표현식을 사용하면 더욱 다양한 패턴에도 대응할 수 있게 됩니다.


물론 주의해야할 점으로는, 하나의 Scenario는, 하나의 Step Definition file안에서 실행되어야 합니다.
예를들어 Scenario내부의 Step단위로, 메소드가 여러 StepDefinition file에 산재되어있으면 안됩니다.

-> 즉 Scenario 단위로는 여러가지 다른 StepDefinition file에서 실행되어도 괜찮습니다.

profile
QA Engineer

0개의 댓글