본문 바로가기
IT/Knowledge

Cucumber 테스트(feat. Gherkin)

by 성준하이 2024. 9. 18.
반응형

서비스를 개발하고 테스트 하는 방법은 다양하게 있다.

 

이번 포스팅에서는 Cucumber 테스트에 대해서 다뤄볼 것이다.

 

우선 위키백과에서는 아래와 같이 설명 되어있다.

Cucumber는 행동 중심 개발을 지원하는 소프트웨어 도구입니다. Cucumber BDD 접근 방식의 핵심은 Gherkin이라는 일반 언어 파서입니다. 이를 통해 예상되는 소프트웨어 동작을 고객이 이해할 수 있는 논리적 언어로 지정할 수 있습니다.

https://en.wikipedia.org/wiki/Cucumber_(software)

 

Cucumber (software) - Wikipedia

From Wikipedia, the free encyclopedia Software tool Cucumber is a software tool that supports behavior-driven development (BDD).[7][8][9][10][11][12] Central to the Cucumber BDD approach is its ordinary language parser called Gherkin. It allows expected so

en.wikipedia.org

 

Cucumber는 행동중심개발(BDD / 참고 포스팅 참고) 개발시 지원이 된다고 한다.

이 말은 즉슨 시나리오가 있다는 의미로 볼 수 있다.

예상되는 결과 까지 생각을 해두고 그 시나리오대로 테스트가 되는지 확인이 되면 된다.

 

그러면서 함께 알아야 하는 것이 Gherkin 이라는 문법이다.


Gherkin은 Cucumber가 해석할 수 있는, 정해진 문법입니다. 보통은 이 Gherkin을 사용하여 Customer 혹은 Planner, Business Analyist가 작성한다.


Gherkin은 아래 형식들을 맞추어 하나의 텍스트파일처럼 만들어준다.

Feature
: 테스트에 대상의 기능/책임을 명시한다.

Scenario
: 테스트 목적에 대한 상황을 설명한다.

Given
: 시나리오 진행에 필요한 값을 설정한다.

When
: 시나리오를 진행하는데 필요한 조건을 명시한다.

하나의 시나리오에 하나의 when조건을 가질것을 추천한다
하나 추가하고 싶으면 시나리오를 여러개로 쪼개야하는 신호다.
Then
: 시나리오를 완료했을 때 보장해야 하는 결과를 명시한다.

요약
테스트 대상은 A 상태에서 출발하며(Given) 어떤 상태 변화를 가했을 때(When) 기대하는 상태로 완료되어야 한다. (Then)

또는 Side Effect가 전혀 없는 테스트 대상이라면 테스트 대상의 환경을 A 상태에 두고(Given) 어떤 행동을 요구했을 때(When) 기대하는 결과를 돌려받아야 한다. (Then)

 


참고 포스팅

https://thenicesj.tistory.com/143

 

개발 방법론(Tdd, Bdd, Ddd) 개념 및 차이

개발을 할때는 아키텍쳐 등으로 설계도 중요하지만 방법론 역시 중요하다. 다양한 방법론들이 있지만 이번 포스팅에서 다뤄볼 방법론은 Tdd, Bdd, Ddd 를 다뤄볼것이다. 과거에는 요구분석단계부

thenicesj.tistory.com

 

반응형

'IT > Knowledge' 카테고리의 다른 글

Clean Architecture 란? (클린아키텍쳐)  (11) 2024.09.20
브레인스토밍(Brainstorming)  (13) 2024.09.19
Regression Test (리그레션 테스트) 란?  (12) 2024.09.17
Middleware란?  (12) 2024.09.15
MES 란?  (6) 2024.09.13

댓글