[typescript] 타입스크립트와 Jest에서의 스냅샷 테스트(Snapshot Testing) 개념 및 활용법

소개

스냅샷 테스트는 코드의 결과물을 이미 저장된 결과물과 비교하여 변화 여부를 확인하는 테스트 방법입니다. 타입스크립트와 Jest를 사용하여 스냅샷 테스트를 구현하는 방법에 대해 알아보겠습니다.

스냅샷 테스트란?

스냅샷 테스트는 자동화된 테스트의 한 종류로, 코드의 출력물(예: JSON, HTML)을 파일로 저장하여 이후 실행된 코드의 출력물과 비교합니다. 새로운 코드 변경으로 인해 기존의 결과물이 변경되었을 경우, 테스트는 실패하게 됩니다. 즉, 스냅샷 테스트는 코드 변경에 의해 예상치 못한 출력물이 생성되었는지 확인하는 데 사용됩니다.

타입스크립트와 스냅샷 테스트

타입스크립트로 작성된 코드의 스냅샷 테스트는 변화하는 HTML, JSON 및 XML 형식의 출력물을 검증할 때 유용합니다. Jest는 테스트 스위트를 위한 테스트 프레임워크이며, 스냅샷 테스트를 지원합니다.

아래는 Jest에서의 스냅샷 테스트를 작성하는 간단한 예제입니다.

import renderer from 'react-test-renderer';
import Component from '../Component';

test('Component should match snapshot', () => {
  const tree = renderer.create(<Component />).toJSON();
  expect(tree).toMatchSnapshot();
});

위 예제에서 toMatchSnapshot 함수는 이전 스냅샷과 현재 테스트 실행 결과물을 비교하고, 실패 시 차이를 보고합니다.

스냅샷 테스트의 장점

결론

타입스크립트와 Jest를 사용하여 스냅샷 테스트를 구현하면 코드 변경으로 인한 예상치 못한 결과물 변경을 사전에 탐지하여 유지보수성을 높일 수 있습니다.

더 많은 정보는 Jest 공식문서를 참고하세요.