메인 콘텐츠로 건너뛰기
page thumbnail

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

wislan
wislan
조회수 21
요약

Jest란 무엇인가

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

Generated Image

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: 코드 커버리지 분석 결과 확인