Feature 파일의 구조와 Gherkin 문법 기초
Cucumber Feature 파일은 .feature 확장자의 일반 텍스트 파일로, Gherkin이라는 도메인 특화 언어(DSL)로 작성됩니다. Feature 키워드로 시작하여 하나의 기능 단위를 정의하고, 각 Scenario에서 Given(전제 조건)-When(동작)-Then(예상 결과)의 3단계 패턴으로 테스트 케이스를 표현합니다. 이러한 구조는 비프로그래머도 이해하고 작성 가능하도록 설계되어, 비즈니스 요구사항과 자동화 테스트 사이의 통역 역할을 합니다.
Step Definition 아키텍처와 매칭 메커니즘
Step Definition은 Feature 파일의 각 Gherkin 단계를 실제 실행 코드로 연결하는 접착제(glue code) 역할을 합니다. Cucumber가 시나리오를 실행할 때, 각 Given/When/Then 문장을 정규식 또는 Cucumber Expression으로 매칭하여 대응하는 메서드를 찾고 실행합니다. 예를 들어 Feature의 "Given I go to the {string} page"는 @Given("I go to the {string} page") 주석이 붙은 Java 메서드와 자동 연결되어, 매개변수 전달을 통한 파라미터화 테스트를 가능하게 합니다.
대규모 프로젝트에서의 Step Definition 조직화 전략
소규모 프로젝트는 단일 파일에서 관리하지만, 시나리오 수가 증가하면 도메인별 분리가 필수입니다. 공식 권장사항은 각 주요 비즈니스 객체(Employee, Education, Experience 등)마다 별도의 StepDefinitions.java 파일을 생성하는 것입니다. 이렇게 하면 코드 재사용성이 높아지고, UI 변경 시에도 Feature 파일(명세)은 유지되고 Step Definition만 수정되는 유연성을 확보합니다.