728x90


유닛테스트에 대한 설명은 추가적으로 하지 않겠다.

어짜피 필요한 사람만 할테니까.

그런데 자세히 설명도 하지 않겠다. 어짜피 unit test를 한다는게 중요한거지 unit test를 어떻게 할지는 중요하지 않기 때문.

필자가 생각해도 어쩌자는 건진 모르겠지만 요점은 처음 배우는 사람도 간단하게 사용할 수 있는것 까지만 알려드리겠다.


그래서 우리가 사용할 프레임워크는 mocha이다.


공식 홈페이지는 위와 같은데 참고할게 있으면 공식홈페이지에서 자주 참고하는게 좋을 것이다.


공식 홈페이지에도 어떻게 쓰면 좋을지에 대한 개략적인 가이드라인이 나와있다.

이대로 보고 따라해도 큰 문제는 없다.

assertion기능은 따로 제공하지 않으므로 기존 내장 assertion을 사용하던가

아니면 서드파티 라이브러리를 사용해주면 되시겠다.



npm i -g mocha


일단 mocha를 글로벌로 설치해서 cli에서 사용가능하게 해주어야한다.

사실... 이러면 준비는 모두 끝나므로 걱정할건 없다.


function add(a, b) {
return a + b;
}

module.exports = add;

이게 우리가 테스트할 모듈이다.



디렉터리 구조인데 mocha에 특별한 짓을 하지 않는다면 그냥 test폴더아래의 모든 js폴더를 확인해서 실행한다.

관습적으로 테스트할 코드는 spec.js를 붙혀준다. 사실 큰 의미는 없지만 여러분도 붙혀주는 습관을 들이는게 좋다.

테스트 코드를 보자.


var assert = require('assert');
var func = require('../function');

describe('test function', () => {
describe('test add', () => {
it('더했을 때의 값을 확인함', () => {
assert.equal(5, func(2, 3));
})
})
});

여러분은 일단 assert를 위해서 assert라이브러리를 추가해준다.

다른짓안해도 nodejs안에 내장되있으므로 그냥 불러주면된다.

그다음 여러분이 사용할 함수역시 추가해준다.

이제 여러분은 내부에 몇가지 함수를 호출해서 사용할 수 있다.

많지 않으므로 꼭 필요한 몇가지를 소개해드리도록 하겠다.


describe - 그룹화 시킨다.

before - 한 그룹 내에서 가장 먼저 해야하는 한가지 작업

beforeEach - 한 그룹 내에서 각각의 테스트 케이스전 실행해야하는 작업

after - 한 그룹 내에서 가장 마지막에 해야하는 한가지 작업

afterEach - 한 그룹 내에서 각각의 테스트 케이스후 실행해야하는 작업

it - 테스트 케이스


가장 중요한건 describe와 it이다.

위의 예제는 테스트 케이스를 실행하게 된다.




assert.equal(5, func(2, 3));

assert.equal은 두 값의 동등 비교를 한다.

두 값이 동등하면 성공한 것이다.


assert.equal(3, func(2, 3));

그럼 값을 바꿔서 일부로 틀리게해서 보도록하자



이렇게 틀린것도 잡을 수 있게된다.

+ Recent posts