Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- JavaScript
- 연결리스트삭제
- ios
- eventcapturing
- 패캠인강후기
- 프로그래머스
- 실패율
- 연결리스트생성
- 수강료0원챌린지
- MVMM
- eventbubbling
- 자료구조
- 환급챌린지
- 직장인인강
- 스위프트
- HTML
- 이벤트캡처링
- 패스트캠퍼스
- Components
- swift
- 코딩테스트
- 이벤트버블링
- 사이드프로젝트10개기술스택으로구현하는풀스택서버리스프로젝트withReact
- 패캠챌린지
- 패스트캠퍼스후기
- hig
- 오공완
- 직장인자기계발
- stopPropagation
- 연결리스트삽입
Archives
- Today
- Total
날쌘 개발자
프로젝트 설계(8) - 기술 소개 : JEST 본문
728x90
패스트캠퍼스 환급챌린지
13일차 화이팅!~
JEST
JEST is a delightful JavaScript Testing Framework with a focus on simplicity - JEST 공식 홈페이지
프론트엔드 어플리케이션을 쉽게 테스팅 할 수 있도록 다양한 인터페이스를 제공하는 JavaScript용 테스팅 프로엠워크.
메타(전 Facebook)에서 만들었고, 오픈소스로 배포
(create-react-app 프로젝트로 React 프로젝트를 생성하면 기본적으로 내장되어 있음. 문서화가 아주 잘 되어있고, 많은 테크 회사에서 사용 중)
JEST의 철학
JEST를 이용해 테스팅의 기쁨을 느껴보자.
특징
고립됨 (isolated)
- 각 테스트 케이스는 고립된 환경에서 돌아감
- 고립되었기 때문에, 테스트 성능을 최대화 시키기 위해 여러 테스트 케이스들을 병렬적으로 돌리는 것이 가능
쉬운 설치 및 시작
- JEST 내에 테스트 러너(runner), 확인(assertion), 코드 커버리지 등 테스팅에 필요한 거의 대부분의 기능들을 이미 지원하기 때문에 테스팅을 위해 별도의 다른 툴을 설치하지 않아도 됨.
- Zero-config! 패키지를 설치 후, 별도의 설정 없이 빠르게 테스트 가능
- {fileNama}.spec.js 형식만 따르면 바로 테스트 실행 가능
스냅샷 (snapshot)
- 객체 내부의 상태/값을 스냅샷으로 파일에 저장해두는 것.
- 보통 React의 가상 DOM 트리 구조를 비교하기 위해 사용됨. 다음 테스트에서 객체의 현재 상태가 스냅샷과 동일한지 아닌지 테스팅 하기도 함.
- 위 테스트가 처음 돌아가면, 스냅샷 파일이 jest에 의해 아래와 같이 자동으로 생성됨.
테스트 셋 설정/분해 (setup/testdown)
- 테스트가 시작되기 전, 끝난 후에 일어나야 할 일들이 있음. (예를들면, DB와의 커넥션 맺고 끊기, 데이터 리셋 등)
테스트 단위마다 설정/분해가 일어나야 할 경우
- beforeEach()
- afterEach()
테스트 파일 내에서 한번만 설정/분해가 일어나도 될 경우
- beforeAll()
- afterAll()
목(Mock) 함수
- 조작된 값을 리턴하는 가짜 함수를 만드는 것. 이 테스트 코드 내에서 컨트롤 하기 어려운 것들 (ex. 외부 API 값, 함수 등)을 이용해서 테스트 코드를 작성해야 할 때 사용함.
- jest.fn() 으로 목킹(mocking)을 할 수 있고, 목킹 된 함수가 호출될 경우 기본적으로 undefined를 리턴함.
- 어떤 값을 리턴할 것인지 설정도 가능
- 호출 될 때마다 각기 다른 값을 리턴 시킬 수도 있음
- 비동기 함수도 목킹이 가능
- 모듈도 목킹 가능
API
describe
- describe (name, function)의 형태로, 관련된 테스트들을 한데 묶어주는 블럭(block)이다.
- 중첩이 가능함.
test
- 테스트의 최소 단위 (a.k.a 하나의 테스트 케이스)
- 이 테스트 함수 내에서, expect 구문을 활용하여 값을 검증한다.
expect
- toBe (object) <-> not.toBe (object)
- toEqua (object) <-> not.toEqual
- toBeNull() <-> not.toBeNull
- toBeTruthy() <-> toBeFalsy()
- toContain (string) <-> not.toContain
- toGreaterThan (number) <-> toLessOrEqualThan
- toThrow (exception) <-> not.toThrow
- toMatch (regex expression) <-> not.toMatch
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
728x90
'web > 챌린지' 카테고리의 다른 글
프로젝트 설계(10) - 테스트 작성의 정석 (0) | 2023.03.06 |
---|---|
프로젝트 설계(9) - TDD (0) | 2023.03.05 |
프로젝트 설계(7) - 기술 소개 : Styled Components, RTL (0) | 2023.03.03 |
프로젝트 설계(6) - 기술 소개 : React Router , Recoil (0) | 2023.03.02 |
프로젝트 설계(5) - 기술 소개 : AWS Apmlify, React (0) | 2023.03.01 |