-
간단하게 Jest, React Testing Library 사용하기React 2022. 11. 29. 08:46
🍅 Jest 설정하기
- Create React App을 사용한다면, Jest는 이미 설정되었을 것이다.
- React에서 jest를 사용하기 위해서 다음과 같이 라이브러리를 설치해준다.
npm install --save-dev jest babel-jest @babel/preset-env @babel/preset-react- 설치한 뒤, jest 명령어를 사용하여 테스트를 할 수 있다.
// package.json 수정 { ..., "scripts": { ..., "jest": "jest", }, }- 테스트는 모든 .test.js 파일이 실행되며, 성공과 실패 결과가 나타난다.
- Support for the experimental syntax 'jsx' isn't currently enabled 에러가 발생하면, 다음과 같이 babel.config.js 파일을 만들고 다음과 같이 작성해준다.
- @babel/preset-react이 추가되면서 jsx를 사용할 수 있게 된다.
module.exports = { presets: [ "@babel/preset-env", ["@babel/preset-react", { runtime: "automatic" }], ], };🌽 테스트 작성하기
import { plus } from "./JestTesting"; test("plus function", () => { expect(plus(1, 2)).toBe(3); });- 설정이 잘 되었다면, 위와같이 import를 통해서 로직을 가져와 검증할 수 있다.
Jest 공식문서 : https://jestjs.io/docs/getting-started
Getting Started · Jest
Install Jest using your favorite package manager:
jestjs.io
Jest로 React 테스트 : https://jestjs.io/docs/tutorial-react, https://ko.reactjs.org/docs/testing-recipes.html
테스팅 방안 – React
A JavaScript library for building user interfaces
ko.reactjs.org
Testing React Apps · Jest
At Facebook, we use Jest to test React applications.
jestjs.io
🥭 React 컴포넌트 테스트하기 (React Testing Library)
- 우선 @testing-library/react를 설치한다.
npm install --save-dev @testing-library/react- 검증할 컴포넌트를 import하고 render 시킬 수 있다.
- render된 컴포넌트에 이벤트를 일으키고, 실제 화면에 예상하는 반응이 일어났는지 확인한다.
import "@testing-library/jest-dom"; import * as React from "react"; import { render, fireEvent, screen } from "@testing-library/react"; import HttpRequestWithKy from "components/TestingComponent"; test("check API call", async () => { render(<TestingComponent />); const button = screen.getByText(/Request/i); fireEvent.click(button); const alert = await screen.findByRole("alert"); expect(alert).toHaveTextContent(/data/i); });공식 문서 : https://testing-library.com/docs/react-testing-library/intro/
React Testing Library | Testing Library
React Testing Library builds on top of DOM Testing Library by adding
testing-library.com
🍹 DOM Testing을 하기 위해서는 react-testing-library이나 Enzyme과 같은 라이브러리를 사용해야 한다.
'React' 카테고리의 다른 글
React에서의 side effect와 effect hook (0) 2022.12.07 React의 StrictMode란? (0) 2022.11.30 React 컴포넌트 props.children에 대해서 알아보기 (0) 2022.11.27 React Redux에서 connect와 bindActionCreators 사용하기 (2) 2022.11.27 timer 만들기 (in React) (0) 2022.11.25