페이스북에서 만들어 자바스크립트 개발자들로부터 좋은 반응을 얻고 있는 테스팅 라이브러리이다.
npm i -D jest
pakage.json에 test 스크립트를 jest로 추가해주면 npm test
로 실행이 가능하다.
{
"scripts": {
"test": "jest
}
}
describe('덧셈 테스트', () => {
test('1 + 2', () => {
expect(1 + 2).toEqual(3);
});
});
describe
는 테스트를 그룹화 해주는 역할을 하고 그룹 내부에 테스트들을 작성해주면 된다.
테스트는 아래와 같은 형식으로 작성할 수 있다.
test('테스트 설명', () => {
// 기대한다(검증대상이).이값이되길(값)
expect(검증대상).toXx(기대값);
});
Matcher
Jest는 일치자(매처)를 사용해 다양한 방식으로 값을 테스트 할 수 있다.
기대한 값을 매처가 일치하는 지 확인해주는 방식으로 테스트가 진행된다.
toBe
===
연산자를 사용해 엄격한 비교를 시행, 기본 자료형 테스트에 주로 사용
expect(1 + 1).toBe("2"); // fail
expect(1 + 1).toBe(2); // success
toEqual
객체와 배열같은 필드를 재귀적으로 확인해 동등을 확인
expect({a : 1}).toEqual({a : 1});
not
일치자가 원하는 값의 반대를 테스트 할 수 있음
expect(1 + 1).not.toBe(3);
Falsy
, Truthy
toBeTruty
: if
구문이 참으로 처리하는 것과 일치
toBeFalsy
: if
구문이 거짓으로 처리하는 것과 일치
undefined
, null
toBeUndefined
: undefined
만 일치
toBedefined
: undefined
의 반대
toBeNull
: null
만 일치
toBeGreaterThan(n)
: n보다 큰 수와 일치
toBeGreaterThanOrEqual(n)
: n과 같거나 큰 수와 일치
toBeLessThan(n)
: n보다 작은 수와 일치
toBeLessThanOrEqual(n)
: n과 같거나 작은 수와 일치
toBeCloseTo(n, digits)
: 부동 소수점 비교, 대략적으로 비교
test('부동소수점 비교', () => {
const a = 0.1;
const b = 0.2;
expect(a + b).toBe(0.3); // fail
expecdt(a + b).toBeCloseTo(0.3, 5); // success
});
toMatch(regExp)
: 정규식과 비교해 일치
toContain(value)
: 배열이나 이터러블한 항목에 특정 값이 포함되어 있는지 확인
toThrow
: 함수가 호출될 때 오류가 발생하는지 확인
Matcher에 대한 더 자세한 내용은 Jest 공식 사이트에서 확인할 수 있다.