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 프로젝트에서 이를 설정하는 방법은 다음과 같습니다.
시나리오: 유효한 자격 증명으로 로그인 성공
사용자가 로그인 페이지에 있는 경우
사용자가 유효한 자격 증명을 입력하는 경우
그런 다음 사용자는 대시보드로 리디렉션됩니다
각 시나리오는 소프트웨어가 지원해야 하는 특정 사용 사례를 나타냅니다. 목표는 기술 팀 구성원과 비기술 팀 구성원 모두가 쉽게 이해할 수 있는 방식으로 이러한 테스트를 작성하는 것입니다.
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 테스트를 유지 관리 및 확장 가능하게 유지하려면 테스트를 작성할 때 특정 모범 사례를 따르는 것이 중요합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3