Node.js Mocha 사용해보기
2020-05-01 12:28:14

실습

구조

보통 개발 버전에서만 사용하므로 다음과 같이 설치

1
npm i mocha -D

테스트할 클래스를 간단하게 작성을 한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
const date = new Date();
const year = date.getFullYear();
const month = `${date.getMonth() + 1}`.padStart(2, '0');
const day = `${date.getDate()}`.padStart(2, '0');
const today = `${year}-${month}-${day}`;

class User {
constructor(id) {
this.id = id;
this.loginDate = today;
this.loginCount = 0;
}

set setLoginDate(loginDate) {
this.loginDate = loginDate;
}

get getLoginDate() {
return this.loginDate;
}

set setLoginCount(count) {
this.loginCount += count;
}

get getLoginCount() {
return this.loginCount;
}
}

module.exports = User;

테스트를 하기 위한 코드, test란 폴더에 작성을 한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const assert = require('assert'); // nodejs 내장 모듈 
const User = require('../user');

describe('User', () => { // NOTE: description
it('#init', () => {
const user = new User('abc');
assert.equal(user.getLoginDate, '2020-03-21', '날짜가 다르네?'); // NOTE: 첫 인자와 두번째 인자 비교, 틀리면 세번쨰 메세지 출력.
});
it('#setLoginCount', (done) => {
this.timeout(3000); // NOTE: 시간 제한 설정.
const user = new User('qwe');
const rnd = Math.floor(Math.random() * 100) + 1;
user.setLoginCount = rnd;
if (user.getLoginCount >= 1 && user.getLoginCount <= 50) return done(new Error('범위보다 크다.'));
return done();
});
});

실행은 package.json에서 script ->test 키워드에 mocha로 작성해두면

test 폴더 안에 있는 파일 전부를 실행 한다.

개별로 실행을 하기 위해서는 test 폴더에서 아래와 같은 명령어로 실행을 하면 된다.

1
../node_modules/.bin/mocha 파일명.js

결과는 아래와 같다.

결과