App.test.js
- CRA로 앱 설치했을 때 기본 제공되는 테스트 코드
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(); });
screen
global을 통해서 가상 DOM에 접근한다. render
메서드와 screen
global 객체 둘 다 RTL를 import해서 가져온다. (import { render, screen } from '@testing-library/react'
)/learn react/i
: 정규식 (i
는 대소문자 구분 안 한다는 의미)'Learn React'
라고 쓰는 것도 가능expect(linkElement).toBeInTheDocument();
jest-dom
Jest를 위한 matcher들을 제공하는 라이브러리
Testing Library와 동반으로 사용된다
CRA와 함께 설치됨
src/setupTest.js
파일에서 각 테스트 전에 jest-dom을 가져온다 (matcher들을 쓸 수 있도록) => 즉, 모든 테스트에서 jset-dom matcher를 사용할 수 있다.DOM-based matchers
참고 : Assertion 예시
DOM 기반 matcher (jest-dom matcher) (가상 DOM에만 적용 가능)
- toBeInTheDocument() : documents.body에 있는지 (인자 X)
- toBeVisible() : DOM에서 보이는가
- toBeChecked() : 체크박스에 체크 됐는지
일반 matcher (모든 node 코드에 적용 가능)
- toBe(문자열) : 일치하는지
- toHaveLength(숫자) : 길이가 맞는지