Gherkin 언어: 구문, 형식 및 예제
⚡ 스마트 요약
Gherkin은 구현 세부 사항 없이 소프트웨어 동작을 설명하는, 비즈니스 관점에서 읽기 쉬운 언어입니다. Given, When, Then 키워드를 사용하여 동작을 정의합니다. Cucumber 테스트 시나리오를 평이한 언어로 작성하여, 살아있는 문서이자 자동화된 BDD 테스트의 뼈대 역할을 합니다.

거킨 언어란 무엇입니까?
작은 오이 비즈니스 개발자가 이해하기 쉬운 언어로, 구현 세부 사항에 얽매이지 않고 비즈니스 동작을 설명하는 데 도움이 됩니다. 이는 특정 도메인에서 테스트를 정의하기 위한 도메인 특화 언어입니다. Cucumber 이 형식은 쉬운 언어를 사용하여 사용 사례를 설명하고 사용자가 동작 테스트에서 논리적 세부 사항을 제거할 수 있도록 합니다.
Gherkin 형식의 텍스트는 문서화 역할을 하는 동시에 자동화된 테스트의 뼈대를 제공합니다. Gherkin 형식은 37개 이상의 언어로 지원되는 TreeTop 문법을 기반으로 하므로 37개 이상의 언어로 Gherkin을 작성할 수 있습니다. 이 스크립트는 크게 두 가지 목적을 수행합니다. 첫째, 사용자 시나리오를 문서화하고, 둘째, 자동화된 BDD 테스트를 작성하기 위한 기반을 제공합니다.
왜 거킨인가?
공통된 명확하고 이해하기 쉬운 언어 형식이 없으면 비즈니스 팀과 기술 팀이 요구 사항을 서로 다르게 설명하여 오해가 발생합니다. Gherkin은 모든 사람에게 일반 영어처럼 읽히면서도 실행 가능한 테스트로 직접 연결되는 단일하고 구조화된 어휘를 제공합니다.
작은 오이 구문
Gherkin은 YAML처럼 줄 단위로 작성되는 언어입니다. Python각 줄을 단계라고 하며 키워드로 시작합니다. 들여쓰기에는 탭이나 공백이 사용됩니다. 주석은 어디에든 추가할 수 있지만 반드시 # 기호로 시작해야 합니다. 인터프리터는 Given, When, Then과 같은 Gherkin 키워드를 제거한 후 각 줄을 읽습니다.
Feature: Title of the Scenario Given [Preconditions or Initial Context] When [Event or Trigger] Then [Expected output]
Gherkin 문서는 .feature 확장자를 가지며, 설명적인 확장자를 가진 단순한 테스트 파일입니다. Cucumber 이 프로그램은 거킨 문서를 읽고 소프트웨어가 거킨 구문에 설명된 대로 동작하는지 확인하는 테스트를 실행합니다.
Gherkin에서 사용되는 주요 용어
주요 키워드는 Feature, Background, Scenario, Given, When, Then, And, But, Scenario Outline입니다. Cucumber 엄격한 명명 규칙은 없지만, 명확한 명명 규칙을 따르면 도움이 됩니다.
제품 특장점
파일 확장자는 .feature여야 하며, 각 기능 파일에는 하나의 기능만 설명해야 합니다. Feature 키워드는 다음으로 시작합니다. 특색: 그 뒤에 공백과 기능 이름이 옵니다.
시나리오
각 기능 파일에는 여러 시나리오가 포함될 수 있으며, 각 시나리오는 다음으로 시작합니다. 시나리오 : 그 뒤에 시나리오 이름이 나옵니다.
배경
Background 키워드는 시나리오에 컨텍스트를 추가합니다. 모든 시나리오에서 공유되는 단계를 포함할 수 있으며, 차이점은 이러한 단계가 각 시나리오보다 먼저 실행된다는 것입니다.
주어진
`Given` 키워드는 사용자가 시스템과 상호 작용을 시작하기 전에 시스템을 알려진 상태로 만듭니다. 이는 사전 조건 또는 컨텍스트를 정의합니다.
Given I am on "/."
인셀덤 공식 판매점인
`When` 키워드는 사용자가 수행하는 작업을 정의합니다.
When I perform "Sign In."
그때
Then 키워드는 When 단계의 작업 후에 관찰되는 결과를 정의합니다. 눈에 띄는 변화만 확인해야 합니다.
Then I should see "Welcome Tom."
그리고 & 하지만
Given, When, Then 단계를 여러 개 사용할 수 있습니다. And와 But 키워드는 가독성을 높이기 위해 추가 단계를 삽입합니다.
And I enter "EmailAddress" with "tomjohn@gmail.com." But I should see "Welcome Tom."
Given, When, Then, And, But은 모두 테스트 단계입니다. 인터프리터는 이들을 서로 바꿔도 오류를 발생시키지는 않지만, 시나리오가 논리적으로 맞지 않게 되므로 각 키워드는 의도된 목적에 맞게 사용해야 합니다.
작은 오이의 예
예 1 : 소셜 네트워킹 사이트의 로그인 기능.
Feature: Login functionality of a social networking site Given I am a registered user When I enter my username And I enter my password Then I should be redirected to the home page
Gherkin은 피처 파일에 작성된 각 단계를 분석하며, 피처 파일의 단계는 단계 정의 파일의 단계와 일치해야 합니다.
예 2 : 배경 화면을 포함한 사용자 인증 시나리오.
Feature: User Authentication Background: Given the user is already registered on the website Scenario: Successful login Given the user is on the login page When the user inputs the correct email address And the user inputs the correct password And the user clicks the Login button Then the user should be authenticated And the user should be redirected to their dashboard
작은 오이를 사용하는 최고의 방법
- 각 시나리오는 별도로 독립적으로 실행되어야 합니다.
- 모든 기능은 독립적으로 실행 가능해야 합니다.
- 단계 정보는 별도로 표시되어야 합니다.
- 시나리오와 요구사항을 연결하세요. track는 각 요구사항에 해당하는 시나리오입니다.
- 모듈식으로 이해하기 쉬운 단계를 만들고 일반적인 시나리오를 결합하세요.
- 시스템이 어떻게 작동하는지가 아니라, 시스템이 무엇을 하는지를 설명하십시오.
거킨의 장점
- Gherkin은 프로그래밍 경험이 없는 사람도 이해할 수 있을 만큼 간단합니다.
- 프로그래머는 이를 테스트를 시작하는 데 있어 견고한 기반으로 활용할 수 있습니다.
- 이를 통해 사용자 스토리를 더 쉽게 이해하고 비즈니스 요구 사항을 효과적으로 충족할 수 있습니다.
- 경영진과 개발자 모두 같은 스크립트를 읽을 수 있습니다.
- Gherkin 테스트 케이스는 인수 테스트를 자동화된 테스트에 직접 연결합니다.
- 이러한 작성 스타일 덕분에 테스트 전반에 걸쳐 코드를 재사용하기가 더 쉬워집니다.
거킨의 단점
- 이는 높은 수준의 비즈니스 참여와 협업을 요구합니다.
- 모든 상황에서 잘 작동하지는 않을 수 있습니다.
- 부실하게 작성된 시험 문제는 시험 관리 비용을 증가시킬 수 있습니다.
