
Jest 기초 활용법 완전히 이해하기

Jest란 무엇인가
Jest는 자바스크립트 환경에서 동작하는 테스트 프레임워크입니다. 주로 프론트엔드(React 등)와 백엔드(Node.js 등)에서 코드의 동작을 검증하고, 자동으로 테스트를 실행해서 버그를 미리 잡을 수 있도록 도와줍니다.

Jest를 사용하는 이유
Jest를 쓰면 반복적인 테스트 작업을 자동화해, 코드 품질을 높이고 개발 속도를 빠르게 할 수 있습니다. 다양한 매처와 Mock 기능 등 편리한 도구가 내장되어 있어 생산성도 크게 향상됩니다.
설치 및 환경 설정 방법
Jest 설치는 npm 명령 한 줄로 끝납니다.
npm install --save-dev jest설치 후 package.json 파일의 scripts에 아래처럼 설정하면 쉽게 테스트를 실행할 수 있습니다.
"scripts": {
"test": "jest"
}기본 테스트 코드 작성법
테스트 코드는 보통 한 파일에 여러 개 작성할 수 있습니다. 예시로 가장 쉬운 테스트를 알아봅니다.
// sum.js
function sum(a, b) {
return a + b;
}
module.exports = sum;
// sum.test.js
const sum = require('./sum');
test('두 숫자를 더한다', () => {
expect(sum(1, 2)).toBe(3);
});테스트 실행 방법
터미널에서 아래 명령을 입력하면 모든 테스트를 자동으로 실행합니다.
npm test테스트 결과가 통과/실패 여부와 함께 상세하게 표시됩니다.
매처(matcher) 활용법
Jest 매처는 실제 값과 기대값을 비교하는 역할을 합니다. 대표적으로는 toBe, toEqual, toContain 등이 있습니다.
expect(value).toBe(expected); // 값이 일치하는지
expect(obj).toEqual(otherObj); // 객체가 동등한지
expect(array).toContain(item); // 배열에 원소 포함 여부Mock 기능으로 함수 동작 시뮬레이션
Mock은 외부 API나 복잡한 함수의 동작을 흉내내는 기능입니다. 테스트에서 실제 외부 요청 없이 단순하게 동작을 검증할 수 있습니다.
const myFunc = jest.fn();
myFunc();
expect(myFunc).toHaveBeenCalled(); // 함수 호출 여부 확인비동기 코드 테스트하기
비동기 함수는 테스트에서 async/await 또는 .resolves, .rejects 등을 활용해 검증합니다.
test('비동기 함수는 값을 반환한다', async () => {
const data = await fetchData();
expect(data).toBeDefined();
});Jest 실전 활용 팁
테스트 파일 이름에
.test.js또는.spec.js를 붙이면 Jest가 자동으로 인식합니다.beforeEach, afterEach 같은 함수로 테스트 실행 전후 작업을 편리하게 설정할 수 있습니다.
코드 수정 시
npm test명령 한 번으로 즉시 전체 테스트를 확인하세요.
자주 쓰는 명령어 및 옵션
npm test: 전체 테스트 실행jest sum.test.js: 특정 테스트 파일만 실행jest --watch: 파일 변경 시 테스트 자동 재실행jest --coverage: 코드 커버리지 분석 결과 확인