...
JEST 란?
Jest는 페이스북에서 만들어서 React와 더불어 많은 자바스크립트 개발자들로 부터 좋은 반응을 얻고 있는 테스팅 라이브러리다.
출시 초기에는 프론트앤드에서 주로 쓰였지만 최근에는 백앤드에서도 기존의 자바스크립트 테스팅 라이브러리를 대체하고 있다.
Jest 이전에는 자바스크립트 코드를 테스트하라면 여러가지 테스팅 라이브러리를 조합해서 사용하곤 했었다.
예를 들어, Mocha나 Jasmin을 Test Runner로 사용하고, Chai나 Expect와 같은 Test Mathcher를 사용했으며, 또한 Sinon과 Testdouble 같은 Test Mock 라이브러리도 필요했었다.
이 라이브러리들은 굉장히 유사하지만 살짝씩 다른 API를 가지고 있었기 때문에, 여러 프로젝트에 걸쳐서 일하는 자바스크립트 개발자들에게 혼란을 주기도 했었다.
하지만 Jest는 라이브러리 하나만 설치하면, Test Runner와 Test Mathcher 그리고 Test Mock 프레임워크까지 제공해주기 때문에 현재 대세라고 말할 수 있다.
JEST 설치
> npm i -D jest
설치를 완료한 뒤에, package.json 파일을 열고 test 스크립트를 jest로 추가해 주자
npm start 처럼, 유명한 예약어라, npm run test 대신 바로 npm test 로 스크립트 실행이 가능하다.
JEST 기본 문법
먼저 test 파일을 만든다. test파일은 테스트할함수파일명.test.js 로 해준다.
describe('계산 테스트', () => {
const a = 1, b = 2;
test('a + b는 3이다.', () => {
expect(a + b).toEqual(3);
});
});
/*
describe('그룹 테스트 설명 문자열', () => {
const a = 1, b = 2; // 테스트에 사용할 일회용 가짜 변수 선언
test('개별 테스트 설명 문자열', () => {
expect(검증대상).toXxx(기대결과);
});
});
*/
describe 는 테스트 그룹을 묶어주는 역할을 하고, 그안의 콜백함수 내에 테스트에 쓰일 가자 변수,객체들을 선언하여 일회용으로 사용 할 수 있다.
toXxx 부분에서 사용되는 함수를 흔히 Test Mathcher라고 하는데, 위에서 사용된 toEqual() 함수는 값을 비교할때 사용한다.
즉, expect(a + b).toEqual(3); 이라는 말은 a+b의 기대값이 3과 같으면 true 를 의미한다고 보면 된다.
그리고 npm test를 실행하면 프로젝트 내에 모든 테스트 파일을 찾아서 테스트를 실행해준다.
Jest는 기본적으로 test.js로 끝나거나, __test__ 디렉터리 안에 있는 파일들은 모두 테스트 파일로 인식한다.
만약 특정 테스트 파일만 실행하고 싶은 경우에는 npm test <파일명 이나 경로>를 입력하면 된다.
이 글이 좋으셨다면 구독 & 좋아요
여러분의 구독과 좋아요는
저자에게 큰 힘이 됩니다.