[React] Jest, 테스트 작성 배우기 !

Dan·2022년 11월 13일
0

React

목록 보기
1/6

테스트 코드 작성

1. 수동적 테스팅

  • 우리가 항상 하는거
  • 개발하고 브라우저에서 확인하는 것

2. 자동화된 테스트 (이유)

  • 애플리케이션의 다른 모든 부분을 항상 테스트 하지 않기 때문
  • 수동 테스트를 대체하는 개념이 아님
  • 자동화된 테스팅은 최신 개발 분야에서 해야하는 표준임

3. 자동화된 테스트의 종류

3.1. unit tests - 매우 중요

  • 리액트의 경우 다른 컴포넌트와 독립적으로 일부 컴포넌트를 테스트 하는 것이라고 할 수 있음
  • 컨셉은, 모든 개별 단위를 테스트 하면 전체 애플리케이션도 작동한다는 것

3.2. intergration Tests

  • 프로젝트에는 일반적으로 몇가지 통합테스트가 포함됨
  • 다만, 한 컴포넌트를 다른 컴포넌트들이 사용하는 경우 때문에 유닛 테스트와 통합 테스트를 구별하는것이 항상 쉬운것만은 아님
  • 중요함, 하지만 단위테스트보다 수가 적음

3.3. End-to-End Tests

  • 전체 워크플로우를 테스트 하는 것
  • 실제로 사람이 웹사이트에서 수행하는 작업을 재현하는 것을 목표로함
  • 중요하긴 하지만, 단위/통합 테스트만큼 많지는 않음
  • 단위/통합 테스트가 잘 작동하면 전체적으로 앱이 잘 작동한다고 꽤 확신할 수 있기 때문
  • 단위/통합 테스트가 하기 쉽기도 함.
    - 더 빠르고, 집중적.
    - 모든 시나리오를 테스트할 때도 단위/통합이 훨씬 쉬움

4. 테스트 작성 할 때 두가지 질문

  • 무엇을 ?
  • 어떻게? - 기술적인 어떻게 보다는 어떤 내용을 넣을지에 대한 질문

5. 테스팅 코드를 어디에 작성하고 어떻게 실행할 것인가?

  1. 테스팅 코드를 실행하고 결과를 확인하기 위한 도구와 설정이 필요함 - jest 주로 사용 (특히 리액트에서 인기있음)
  2. 리액트 앱과 컴포넌트들을 랜더링하는 것을 시뮬레이팅 하는 방법이 필요함(like 브라우저 시뮬레이팅) - React Testing Library 주로 사용

CRA로 프로젝트를 생상하면 위 두가지 도구는 모두 이미 설치/설정이 되어 있음 (package.json보면 있음)

6. 테스트 파일

App.js / App.test.js
테스팅 파일과 컴포넌트 파일 이름은 일치하는 것이 관례
“.test.js” 확장자를 사용하는 것.

7. Test Suites / Test

  • 어플리케이션 규모가 커질 수록 수백 수천개의 테스트를 갖게 될 것.
  • suite를 통해 그룹화해서 정리할 수 있음
  • 하나의 특징 또는 하나의 컴포넌트에 속하는 모든 테스트는 한 테스트 suite에 들어감
  • ‘describe 함수(global함수)를 통해 suite 생성
  • 두 매개변수중 첫 번째는 매개변수 설명
  • 두번 째 매개변수인 익명함수에는 해당 suite에 들어갈 테스트들을 넣어줌
  • suite를 여러개 가질 수도 있고, suite마다 테스트도 여러 개 가질 수 있음

0개의 댓글