[React] 🦮월월월월의 React Testing Library

2024. 9. 1. 23:58·React
목차
  1. 테스트의 종류
  2. Unit Test
  3. Integration Test
  4. Functional Test
  5. E2E Test
  6. React Testing Library
  7. Jest/Vitest
  8. Test
  9. Assertion (단언)

React Testing Library

테스트의 종류

Unit Test

함수나 컴포넌트, 코드의 한 유닛 혹은 단위를 테스트한다.

유닛 테스트는 테스트를 최대한 격리시킨다.

유닛이 다른 코드의 유닛과 상호 작용하는 것은 테스트하지 않는다.

컴포넌트가 의존하는 다른 함수가 있으면 실제 버전이 아닌 테스트용 버전을 사용한다.

Integration Test

컴포넌트 간, 유닛간의 상호작용을 테스트 한다.

Functional Test

소프트웨어의 특정 기능을 테스트한다.

특정 코드의 함수가 아닌 소프트웨어의 일반적인 동작을 의미한다.

React Testing Library는 Functional Test를 권장한다.

E2E Test

실제 브라우저와 서버를 사용하여 사용자 관점에서 테스트 한다.

React Testing Library

React Testing Library는 사용자가 소프트웨어를 사용하는 것처럼 테스트 할 수 있게 해준다. 이때 내부 구현은 신경을 쓰지 않아 내부 로직이 바뀌어도 사용자가 결과적으로 똑같이 사용을 할 수 있으면 테스트의 결과는 바뀌지 않는다. React Testing Library는 ID가 아닌 area-label같은 accessibility marker를 통해 요소를 찾는다.

React Testing Library가 하는일은 다음과 같다.

  • 요소들을 렌더링하고 테스트할 가상 DOM 제공
  • DOM을 변경하고 검사할 수 있는, 즉 가상 DOM과 상호작용할 수 있는 방법을 제공

Jest/Vitest

Jest와 Vitest는 테스트를 실행한다.

Jest와 Vitest가 하는 일은 다음과 같다.

  • 테스트를 찾는다
  • 테스트를 실행한다.
  • 테스트가 통과 혹은 실패인지 구분한다.

Jest와 Vitest의 차이는 파일을 지정하는 설정과 구성구문이다. 따라서 작성하는 테스트 코드는 Jest와 Vitest에서 모두 작동한다.

Test

테스트를 정의한다.

test는 전역 메서드이며 2가지 인자를 받는다.

  • 테스트의 설명
  • 테스트 함수
test('테스트 설명', ()=>{
  // 테스트 함수
})

테스트 함수에서 에러가 발생하면 테스트는 실패한다.

테스트 함수 내에 Aessertion(단언)이 예상값과 결과가 다르면 에러를 발생시킨다.

에러가 없으면 테스트는 성공한 것이다.

Assertion (단언)

테스트가 통과되었는지 아닌지 정한다.

expect(단언대상).matcher(인자)
  • expect 전역 메서드이며, 단언을 시작한다. 단언의 대상을 인자로 받는다.
  • matcher 단언의 유형을 나타낸다. matcher에 따라 인자를 받을수도 있다. tobe, tobeInDocument등 여러가지 메서드가 있다.

 

'React' 카테고리의 다른 글

[ React ] React Hooks - useMemo / Memoization  (1) 2024.09.08
Three.js 맛보기  (1) 2024.09.01
React Hooks - useRef  (0) 2024.09.01
만두의 프론트엔드 찍먹 일기 - 페이지 라우팅편  (1) 2024.09.01
만두의 프론트엔드 찍먹 일기  (2) 2024.08.25
  1. 테스트의 종류
  2. Unit Test
  3. Integration Test
  4. Functional Test
  5. E2E Test
  6. React Testing Library
  7. Jest/Vitest
  8. Test
  9. Assertion (단언)
'React' 카테고리의 다른 글
  • [ React ] React Hooks - useMemo / Memoization
  • Three.js 맛보기
  • React Hooks - useRef
  • 만두의 프론트엔드 찍먹 일기 - 페이지 라우팅편
월월월월2
월월월월2
백엔드로 살아남기 입니다.
월월월월2
백엔드로 살아남기
월월월월2
전체
오늘
어제
  • 분류 전체보기 (64)
    • Spring (15)
    • TroubleShooting (2)
    • Infra (7)
    • Java (9)
    • Docker (7)
    • Database (1)
    • Algorithm (9)
    • React (8)
    • CS (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

링크

공지사항

인기 글

태그

spring
자바빈즈패턴
Java
DevOps
도커
MSA
자바
Docker in Docker
스프링
23288
Docker Out of Docker
사가 패턴
application.properties
낙관적 락
점층적생성자패턴
springboot
연관 관계
react testing library
#security
비관적 락
다중 usersdetail
Docker
Spring Security
트러블슈팅
JPA
YAML
countingsort
스프링스케줄러
dind
Algorithm

최근 댓글

최근 글

hELLO· Designed By정상우.v4.6.1
월월월월2
[React] 🦮월월월월의 React Testing Library

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.