"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Cucumber.js: 행동 중심 테스트에 대한 완벽한 가이드

Cucumber.js: 행동 중심 테스트에 대한 완벽한 가이드

2024-11-09에 게시됨
검색:543

Cucumber.js: A Complete Guide to Behavior-Driven Testing
Cucumber.js는 일반 언어로 작성된 자동화된 테스트를 실행하는 데 널리 사용되는 도구로, 개발자와 개발자가 아닌 사람이 테스트에 대해 협업할 수 있습니다. 이는 이해관계자 간의 명확한 의사소통이 중요한 행동 중심 개발(BDD)에 특히 유용합니다. Cucumber js는 사람이 읽을 수 있는 언어를 사용하여 제품 소유자, 테스터 및 개발자가 소프트웨어가 예상대로 작동하는지 확인하는 동시에 애플리케이션의 전반적인 품질을 향상시킬 수 있도록 해줍니다.
행동 중심 개발(BDD) 이해
Cucumber.js는 기술 이해관계자와 비기술 이해관계자 간의 의사소통을 장려하는 소프트웨어 개발 접근 방식인 행동 중심 개발(BDD)의 원칙을 기반으로 구축되었습니다. BDD에서는 모든 팀 구성원이 요구 사항을 이해하는 데 기여할 수 있도록 테스트가 공유 언어로 작성됩니다. BDD는 기술적인 세부 사항보다는 동작에 중점을 두어 비즈니스 분석가부터 개발자까지 모든 사람이 소프트웨어의 작동 방식을 동일하게 이해하도록 보장합니다.
BDD는 일반적으로 시나리오를 설명하기 위해 "Given, When, Then" 형식을 따릅니다.
• 주어진: 초기 컨텍스트를 정의합니다(예: "사용자가 로그인되어 있음").
• 시기: 작업이나 이벤트를 설명합니다(예: '사용자가 제출 버튼을 클릭하는 경우').
• Then: 예상되는 결과를 지정합니다(예: "The then the form is submited").
Cucumber.js는 이 형식을 사용하여 자연어 테스트를 활성화합니다.
Cucumber.js 설치 및 설정
Cucumber.js를 시작하려면 필요한 npm 패키지를 설치하고 프로젝트를 구성해야 합니다. Cucumber.js는 Node.js 패키지로 제공되며 npm을 통해 쉽게 설치할 수 있습니다. Node.js 프로젝트에서 이를 설정하는 방법은 다음과 같습니다.

  1. Cucumber.js를 설치합니다. 세게 때리다 코드 복사 npm install --save-dev @cucumber/cucumber
  2. 프로젝트 구성: 기능 파일 및 단계 정의에 대한 폴더 구조를 만듭니다. 예를 들어: 펄 코드 복사 ├──특징 │ ├── 단계 정의 │ └── my-feature.feature 설치가 끝나면 첫 번째 기능 파일을 작성하고 해당 단계 정의를 생성할 수 있습니다. 첫 번째 기능 파일 작성 Cucumber.js의 핵심 요소는 테스트가 Gherkin 구문을 사용하여 일반 영어로 작성되는 기능 파일입니다. 기능 파일은 사용자 관점에서 작성된 시나리오의 애플리케이션 동작을 설명합니다. 다음은 로그인 기능을 테스트하는 간단한 기능 파일의 예입니다. 기능: 로그인 기능

시나리오: 유효한 자격 증명으로 로그인 성공
사용자가 로그인 페이지에 있는 경우
사용자가 유효한 자격 증명을 입력하는 경우
그런 다음 사용자는 대시보드로 리디렉션됩니다
각 시나리오는 소프트웨어가 지원해야 하는 특정 사용 사례를 나타냅니다. 목표는 기술 팀 구성원과 비기술 팀 구성원 모두가 쉽게 이해할 수 있는 방식으로 이러한 테스트를 작성하는 것입니다.
Cucumber.js의 단계 정의
단계 정의는 기능 파일의 자연어 단계가 실행 가능한 JavaScript 코드에 매핑되는 곳입니다. 각 단계(예: "사용자가 로그인 페이지에 있는 경우")는 단계 정의 파일의 메서드에 해당합니다.
로그인 기능의 단계를 정의하는 방법의 예는 다음과 같습니다.
const { 주어진, 언제, 그러면 } = require('@cucumber/cucumber');

Given('사용자는 로그인 페이지에 있습니다.', function () {
// 로그인 페이지로 이동하는 코드
});

When('사용자가 유효한 자격 증명을 입력했습니다.', function () {
// 유효한 사용자 이름과 비밀번호를 입력하는 코드
});

Then('사용자가 대시보드로 리디렉션됩니다.', 함수 () {
// 대시보드로의 리디렉션을 확인하는 코드
});
Give, When 및 Then 함수는 Cucumber.js 패키지에서 제공되며 각 함수는 시나리오의 단계를 필요한 논리를 구현하는 JavaScript 함수에 매핑합니다.
Cucumber.js 테스트 실행
기능 파일과 단계 정의가 준비되면 Cucumber.js를 실행하여 테스트를 실행하고 결과를 확인할 수 있습니다. 터미널에서 다음 명령을 실행하세요:
npx 오이-js
Cucumber.js는 기능 파일을 구문 분석하고 단계를 해당 단계 정의와 일치시키고 테스트를 실행합니다. 출력에는 어떤 시나리오가 성공하거나 실패했는지 표시되어 애플리케이션 동작에 대한 명확한 가시성을 제공합니다.
Cucumber.js를 다른 테스트 도구와 통합
Cucumber.js는 Mocha 또는 Chai와 같은 널리 사용되는 테스트 프레임워크와 통합되어 테스트 스위트의 기능과 구조를 향상시킬 수 있습니다. Cucumber.js를 이러한 프레임워크와 결합하면 강력한 어설션 라이브러리와 테스트 기능을 사용하여 테스트의 깊이를 향상할 수 있습니다.
예를 들어 단계 정의에서 어설션에 Chai를 사용할 수 있습니다.
const { 기대 } = require('chai');

Then('사용자가 대시보드로 리디렉션됩니다.', 함수 () {
Expect(currentPage).to.equal('dashboard');
});
다른 도구를 통합하면 기본 BDD 시나리오 이상으로 Cucumber.js를 확장하여 전체 테스트 전략의 유연한 부분으로 만들 수 있습니다.
유지 관리 가능한 BDD 테스트 작성 모범 사례
Cucumber.js 테스트를 유지 관리 및 확장 가능하게 유지하려면 테스트를 작성할 때 특정 모범 사례를 따르는 것이 중요합니다.

  1. 작고 독립적인 시나리오 작성: 각 시나리오는 특정 동작을 테스트해야 하며 다른 시나리오에 의존해서는 안 됩니다. 이렇게 하면 테스트를 더 쉽게 이해하고 유지 관리할 수 있습니다.
  2. 지나치게 복잡한 단계 정의 피하기: 단계 정의는 집중적이고 간결해야 합니다. 단계에 로직이 너무 많이 필요한 경우 단계를 더 작은 단계로 나누거나 코드를 리팩터링하는 것이 좋습니다.
  3. 시나리오 전체에서 단계 재사용: 가능한 경우 여러 시나리오에서 단계 정의를 재사용하여 중복을 줄이고 일관성을 향상시킵니다.
  4. 기능 파일을 이해하기 쉽게 유지: 개발자와 비기술 팀 구성원 모두가 쉽게 이해할 수 있는 방식으로 기능 파일을 작성합니다. 명확하고 설명적인 시나리오는 팀 전체의 의사소통을 향상시킵니다. 결론 Cucumber.js는 테스트 작성을 위한 간단하고 이해하기 쉬운 형식을 제공하여 개발자, 테스터 및 이해관계자 간의 격차를 해소하는 강력한 방법을 제공합니다. BDD 프레임워크 내에서 Cucumber.js를 사용하면 테스트가 비즈니스 요구 사항에 밀접하게 부합하고 모든 팀 구성원이 응용 프로그램의 작동 방식을 공유할 수 있습니다. 작은 구성 요소를 테스트하든 복잡한 작업 흐름을 테스트하든 Cucumber.js는 소프트웨어 프로젝트의 성공에 기여하는 더 명확하고 효과적인 테스트를 작성하는 데 도움이 됩니다.
릴리스 선언문 이 글은 https://dev.to/keploy/cucumberjs-a-complete-guide-to-behavior-driven-testing-12h1?1에서 복제되었습니다.1 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다. 그것
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3