테스트 자동화와 Mocha 링크 : https://ko.javascript.info/testing-mocha
테스팅 자동화는 테스트 코드가 실제 동작에 관여하는 코드와 별개로 작성되었을 때 가능하다.
테스트 코드를 이용하면 함수를 다양한 조건에서 실행해 볼 수 있는데, 이 때 실행결과와 기대결과를 비교할 수 있다.
테스트 방법에는 여러 방법이 있지만 여기서는 Behavior Driven Development(BDD, 행위주도 개발)을 다룬다.
테스트는 코드의 구현과정에 초점을 둔다. 따라서 거듭제곱 연산자인 ** 연산자가 있지만 거듭제곱을 직접 구현해본다.
이때 만들어진 산출물을 명세서 또는 spec 이라고 부른다.
describe("pow", function() {
it("주어진 숫자의 n 제곱", function() {
assert.equal(pow(2, 3), 8);
});
});
스펙은 세가지 주요 구성 요소로 이루어진다.
1) describe ("title", function() {...})
구현하고자 하는 기능에 대한 설명이 들어간다. it 블록을 한데 모아주기도 한다.
2) it("유스케이스 설명", function() {...})
첫번째 인수에는 특정 유스케이스 테스트 함수가 들어간다.
두번째 인수에는 유스케이스 테스트 함수가 들어간다.
3) assert.equal (value1, value2)
'assert.비교함수'는 value1이 제대로 동작하여 value2를 결과로 갖는지 비교하는 역할을 한다.
위 과정 중 3~6단계를 반복한다.
before / after 는 테스트 실행 전/후에 실행되고 beforeEach / afterEach 는 각 it 전/후에 실행되어 단일 테스트에 쓰인다.
이 네가지는 주로 값을 초기화 할 때 쓰인다.
숫자를 테스트 할 때는 음수인지, 정수가 아닌지, NaN인지도 테스트 해야한다.