Jest

dia·2025년 1월 14일

개념

설명

JavaScript와 TypeScript로 작성된 애플리케이션을 테스트하기 위한 테스트 프레임워크
설정 없이 바로 사용할 수 있는 직관적인 프레임워크
주로 단위 테스트, 통합 테스트, 스냅샷 테스트를 작성하고 실행하는 데 사용됨

Facebook에서 개발하고 유지보수함
React 프로젝트에서 특히 많이 사용됨
JavaScript 프로젝트에서 널리 사용됨


특징

  1. 설정 없이 바로 사용 가능
  2. 단위 테스트 지원
  3. 스냅샷 테스트
  4. 모의(Mock) 기능
  5. 비동기 코드 테스트
  6. 테스트 실행 및 커버리지 리포트
  7. 타입스크립트 지원
  8. 병렬 실행

효과

자동화된 테스트를 통해 코드 품질 향상
예상치 못한 버그 방지


사용 방법

  1. 설치
npm install --save-dev jest
  1. 테스트 파일 생성
    *.test.js 또는 *.spec.js
  1. 실행
npx jest

예시

기본 테스트

sum.js

function sum(a, b) {
  return a + b;
}

module.exports = sum;

sum.test.js

const sum = require('./sum');

test('adds 1 + 2 to equal 3', () => {
  expect(sum(1, 2)).toBe(3);
});

비동기 테스트

asyncFunction.js

function fetchData() {
  return new Promise((resolve) => {
    setTimeout(() => resolve('data'), 1000);
  });
}

module.exports = fetchData;

asyncFunction.test.js

const fetchData = require('./asyncFunction');

test('fetches data', async () => {
  const data = await fetchData();
  expect(data).toBe('data');
});

스냅샷 테스트

MyComponent.js

import React from 'react';

const MyComponent = () => {
  return <div>Hello, Jest!</div>;
};

export default MyComponent;

MyComponent.test.js

import React from 'react';
import renderer from 'react-test-renderer';
import MyComponent from './MyComponent';

test('matches snapshot', () => {
  const tree = renderer.create(<MyComponent />).toJSON();
  expect(tree).toMatchSnapshot();
});
profile
CS 메모장

0개의 댓글