어떤 기술스택을 쌓으면 더 성장할 수 있을까를 고민하다가 이전 프로젝트 코치님께서 "프론트엔드 개발자라면 테스트 코드를 잘 짜는 것이 중요하다"는 조언을 해주신 것이 떠올랐습니다.
그래서 곧 다가오는 3차 프로젝트 개발에서 TDD 방법론을 적용해보기 위해 Jest 프레임워크와react-testing library
를 공부하면서 정리해보았습니다.
: Test-Driven Development. 즉, 테스트 주도 개발이라는 뜻으로 실패하는 테스트 코드를 먼저 만들어놓고, 그 테스트를 통과하는 코드를 작성하는 방식을 말합니다.
ex) App.test.js
코드를 통과하는 App.js
코드를 만든다.
또한, TDD의 개발 단계 중 리팩토링 과정을 통해 깔끔한 코드를 작성할 수 있습니다.
: facebook에서 오픈소스화한 javascript 테스트 프레임워크로 CRA(Create-React-App)에는 기본적으로 내장되어 있습니다.
: DOM을 테스트하기 위한 도구. 즉, React 컴포넌트를 테스트 하기 위해 만들어진 도구입니다.
: RTL을 Jest의 대안이라고 생각할 수 있으나, React 내에서 테스트를 진행할 때 함께 사용되기 때문에 상호 보완 관계라고 할 수 있습니다.
Jest를 통해 전반적인 기능 테스트를 진행할 수 있지만, React의 컴포넌트를 렌더링하고 테스트하기 위해서는 RTL이 필요하기 때문입니다.
CRA(create-react-app)를 사용하면 기본적으로 jest는 내장되어 있습니다.
(아래 내용은 CRA(create-react-app)를 통해 리액트 패키지를 설치했다는 가정 하에 이루어지는 세팅 방법입니다.)
react-testing library
와jest-dom
을 설치해줍니다.→
yarn add --dev @testing-library/jest-dom @testing-library/react
- src > setupTests.js 라는 파일을 하나 만든 후
import "@testing-library/jest-dom";
코드를 추가해주면
세팅이 완료됩니다.