Skip to content

Qvil Blog

[Node.js] Javascript Unit Test 프레임워크 Mocha

javascript, node.js, mocha, unit-test1 min read

개요

영어가 익숙하면 아래 참고에 있는 공식사이트를 보시는 걸 추천합니다. 공식사이트만큼 좋은 문서는 없는 것 같습니다. 그럼에도 불구하고 한국어 문서가 익숙한 분들과 제 스스로 한번 더 보기 위해서 작성합니다.

설치

npm global로 설치하거나

1npm install --global mocha

혹은

1npm i mocha -g

프로젝트 개발에만 종속되도록 설치

1npm install --save-dev mocha

혹은

1npm i mocha -D

실행

test/test.js에 테스트 코드를 넣고 프로젝트에 설치했으면

1./node_modules/mocha/bin/mocha

글로벌 설치를 했으면

1mocha

명령어로 실행.

package.json 설정을 통해서 간편하게 커스터마이징해서 사용하는 것을 추천합니다.

테스트 코드

1var assert = require("assert");
2describe("Array", function () {
3 describe("#indexOf()", function () {
4 it("should return -1 when the value is not present", function () {
5 assert.equal(-1, [1, 2, 3].indexOf(4));
6 });
7 });
8});

테스트 코드 해설

  1. assert1모듈을 사용하기 위해서 require로 불러옴.
  2. describe함수는 suite라고 불리는 함수의 설명이라고 생각. 중첩 가능.
  3. it함수는 실제 테스트 케이스를 작성하는 곳.
    1. 첫번째 인자로 테스트 케이스의 설명을 쓰고
    2. 두번째 인자로 테스트코드를 콜백함수로 작성.
  4. 배열에 4가 없는데 indexOf(4)로 4를 찾으므로(indexOf함수는 인자값이 해당 객체에 있으면 위치를 숫자로 출력하거나 없으면 -1을 출력)

테스트 결과

성공

mocha-success

실패

배열에 4 추가함. assert.equal(-1, [1,2,3,4].indexOf(4));

mocha-fail

package.json 설정

.spec.js파일을 찾아서 감시옵션(-w)을 주고 실행하면 파일이 변경될 때마다 자동으로 테스트가 실행됩니다.

1"scripts": {
2 "test": "./node_modules/mocha/bin/mocha $(find . -name '*.spec.js') --recursive -w"
3 },
1npm test

혹은

1npm run test

참고