이밖에도.. 재설계 시간의 단축, 추가로 무언가를 더 구현해야 할 때 더 용이하게 할 수 있는 등의 이점들이 있다.
React Testing Library
Create React App로 리액트 앱을 생성하면
기본적으로 테스팅을 위한React Testing Library가 내장되어 있다
리액트 컴포넌트를 테스트하는 가벼운 솔루션!
React Testing Library는 React 구성 요소 작업을 위한 API를 추
가하여 DOM Testing Library 위에 구축.
DOM Testing Library란 Dom 노드(Node)를 테스트하기 위한 매
우 가벼운 솔루션.
Create React App으로 생성된 프로젝트는 즉시 React Testing Library를 지원. 그렇지 않은 경우 npm을 통해 추가 가능.
npm install --save-dev @testing-library/react
React Testing Library는 에어비앤비에서 만든 Enzyme을 대체하는 솔루션.
| 구분 | 방법 | 설명 |
|---|---|---|
| Enzyme | 구현 주도 테스트 (Implementation Driven Test) | UI를 테스트할 때 어떤 태그가 사용되었고 어떤 문자가 추가되었는지를 테스트 함. 그래서 만약 <p>태그를 <h2>태그로 바꾸면 에러 발생... |
| React Testing Library | 행위 주도 테스트 (Behavior Driven Test) | 사용자의 입장에서 테스트하기 때문에 어떤 태그가 사용되었는지 보다 어떠한 이벤트를 발생시켰을 때 화면이 어떻게 변화가 되는지 등의 테스트가 주를 이룬다 |
Jest란,https://jestjs.io/docs/getting-started
https://github.com/testing-library/jest-dom
Jest 시작하기npm install jest --save-dev
yarn add --dev jest




React Testing Library 주요 APIApp.test.js
App컴포넌트를 렌더링 시켰을 때, learn react 라는 텍스트가Document에 있는가?

render 함수Return은 RTL에서 제공하는 쿼리 함수와 screen 객체를 사용하기! get, find, query 등 여러 유형의 쿼리가 있다.| 쿼리 | 설명 |
|---|---|
| getBy.. | 쿼리에 대해 일치하는 노드를 반환하고 일치하는 요소가 없거나 둘 이상이면 에러 반환 둘 이상의 요소가 예상되는 경우 대신 getAllBy.. 사용. |
| queryBy.. | 쿼리에 대해 일치하는 노드를 반환하고 일치하는 요소가 없으면 null을 반환. 존재하지 않는 요소를 확인할 때 유용. 일치하는 요소가 둘 이상이면 에러 반환. |
| findBy.. (getBy + waitFor = findBy) | 주어진 쿼리와 일치하는 요소가 발 견되면 Promise를 반환. 요소가 발견되지 않거나 기본 제한 시간인 1000ms 후에 둘 이상의 요소가 발견되면 거부. 둘 이상의 요소를 찾아야 하는 경우 findAllBy를 사용. |
