문장과 실행 코드 사이
시나리오에 문장을 적었다고 프로그램이 그 뜻을 자동으로 이해하는 것은 아니다. Cucumber는 실행할 단계에 맞는 정의를 찾고 연결된 메서드를 호출한다. 개발자는 그 코드에서 시스템을 조작하고 결과를 확인한다. 문장의 읽기 쉬움과 실제 검증의 충실함을 함께 관리해야 한다.
표현식과 인자 전달
단계 정의에는 문장과 연결하는 표현식을 둔다. Cucumber 표현식이나 정규식으로 입력 부분을 찾아 코드의 인자로 넘길 수 있다. 같은 의미를 반복해서 다른 문장으로 만들면 정의가 늘어나고, 너무 넓은 표현식은 의도하지 않은 단계와 맞을 수 있다. 업무 언어를 일관되게 정리하고 연결 범위를 명확히 한다.
다른 도구와의 결합
빌드 도구나 테스트 실행 환경, 의존성 주입 구성과 함께 사용할 수 있다. 단계를 구현할 때 API 검사나 브라우저 자동화 도구를 선택하는 것은 별도 결정이다. 모든 시나리오를 화면 조작으로 만들 필요는 없다. 시나리오 사이에 상태가 새지 않도록 준비 데이터를 분리하고 실제로 단언이 수행되는지도 확인한다.
관련 문서
Cucumber JS / Reqnroll / Spock / Serenity BDD