Jest vs react-testing-library

최정은·2022년 4월 25일
1

test

목록 보기
1/1

Jest

자바스크립트 테스트 프레임워크이다.

자바스크립트 또는 타입스크립트 환경에서 테스트를 진행할 수 있게 해준다.

react-testing-library

React 구성 요소(component 등)을 테스트하기 위해 만들어진 제작된 JavaScript 테스트 유틸리티이다.

사용자 상호 작용을 시뮬레이션하고 해당 출력으로 UI가 올바르게 작동하는지 확인한다.

차이점?

react-testing-libraryJest의 대체품이 아니다..! 리액트 컴포넌트 테스트를 하려면 어차피 둘 다 필요하다.

Jest 같은 경우는 test runner이다.(테스트를 실행하도록 해준다.) 테스트를 찾아서 실행하고 해당 테스트가 통과일지 실패일지를 결정한다.

react-testing-library는 리액트 컴포넌트 testing을 위한 가상 돔(Virtual DOM)을 제공해준다.

react-testing-library에서 가상 돔을 제공해주기 때문에 웹 브라우저 없이도 app을 렌더할 수 있고 elements와 상호작용 가능하며 관찰할 수도 있게 되는 것이다. (버튼을 눌러서 화면의 너비를 변경하는 행위 같은거..)

디폴트로 CRA(create-react-app)에선 Jest와 testing-library를 둘 다 지원하고 있다.

예시는 아래와 같다.

import { render, screen } from '@testing-library/react';
import App from './App';

test('renders learn react link', () => {
  render(<App />);
  const linkElement = screen.getByText(/learn react/i)
  expect(linkElement).toBeInTheDocument();
});

참고자료

https://blog.logrocket.com/testing-react-apps-jest-react-testing-library/

0개의 댓글