Mocha를 이용한 Node.js 테스트 주도 개발(TDD)
목차
Mocha는 Node.js 환경에서 사용할 수 있는 유연하고 기능이 풍부한 JavaScript 테스트 프레임워크입니다.
1. Mocha 설치
프로젝트 디렉토리에서 다음 명령어를 실행하여 Mocha를 설치합니다. 이 명령어는 Mocha를 프로젝트의 개발 의존성으로 추가합니다.
npm install mocha --save-dev
2. 테스트 스크립트 설정
package.json
파일에서 scripts
부분을 찾아 test
스크립트를 Mocha를 사용하도록 업데이트합니다. 이렇게 하면 npm test
명령어로 테스트를 실행할 수 있습니다.
"scripts": {
"test": "mocha"
}
3. 테스트 디렉토리와 파일 생성
Mocha는 기본적으로 test
디렉토리에서 테스트 파일을 찾습니다. 프로젝트 루트에 test
디렉토리를 만들고, 테스트할 기능에 대한 테스트 파일을 생성합니다. 예를 들어, test/exampleTest.js
라는 이름으로 파일을 만듭니다.
mkdir test
touch test/exampleTest.js
4. 테스트 케이스 작성
exampleTest.js
파일을 열고, Mocha와 함께 사용할 assertion 라이브러리(예: Chai)를 사용하여 테스트 케이스를 작성합니다. 여기서는 간단한 예제를 제공합니다.
const assert = require('assert');
describe('Array', function() {
describe('#indexOf()', function() {
it('should return -1 when the value is not present', function() {
assert.strictEqual([1,2,3].indexOf(4), -1);
});
});
});
5. 테스트 실행
테스트 케이스를 작성한 후, 다음 명령어를 통해 Mocha를 실행하고 테스트를 수행합니다.
npm test
이 명령어는 package.json
에 정의된 test
스크립트를 실행하여 test
디렉토리 내의 모든 테스트 파일을 Mocha가 실행하게 합니다. 테스트 결과는 터미널에 출력됩니다.
추가 사항
- Chai 사용: 더 다양한 assertion을 사용하고 싶다면, Chai assertion 라이브러리를 설치하고 사용할 수 있습니다.
npm install chai --save-dev
- 비동기 테스트: Mocha는 비동기 코드 테스팅을 지원합니다.
done
콜백이나 Promise, async/await을 사용하여 비동기 테스트를 작성할 수 있습니다. - 테스트 커버리지: 테스트 커버리지를 측정하고 싶다면,
nyc
(Istanbul의 커맨드 라인 버전)와 같은 도구를 함께 사용할 수 있습니다.
Mocha를 사용하여 프로젝트에 단위 테스트를 추가하는 것은 코드의 품질을 유지하고, 잠재적인 버그를 사전에 발견하는 데 큰 도움이 됩니다.