Facebook에서 유지 관리하는 JavaScript 테스트 프레임 워크
테스트는 서비스를 개발하고 유지하기 위한 장치 중 하나입니다.
이러한 테스트를 작성한다면 버그를 예방하고 에러 방지, 기능 확인 시간을 줄여 줄 것입니다.
이러한 테스트 프레임 워크 중 Jest는 사용 빈도가 가장 높으며 단순함에 집중하여 누구나 쉽게 테스트를 할 수 있도록 고안되었습니다.
npm install --save-dev jest
package.json 파일 안에 scripts항목을 수정한다.
"scripts": {
"test": "jest --watch"
},
테스트할 기능을 모듈로 export 해준다.
function plus (num) {
return num + 5
}
export default plus
__test__ 폴더 안에 0000.test.js 형식으로 작성
후 파임 import
import plus from 경로
test(설명내용, ()=>{
expoect(plus(5)).toBe(10)
})
toBe : 값이 맞는 지를 확인
toEqual : 값이 맞는 지를 확인
toBe와 toEqual의 차이점
객체나 배열은 재귀적으로 돌면서 검사해야하기 때문에
toEqual 혹은 toStrictEqual(Deep equality용)을 사용해줘야한다.
toBeNull
toBeUndefined
toBeDefined
toBeTruthy
toBeFalsy
toBeGreaterThan : 크다
toBeGreaterThanOrEqual : 크거나 같다
toBeLessThan : 작다
toBeLessThanOrEqual : 작거나 같다
toBeCloseTo : 근사치를 확인
컴퓨터는 2진법을 사용하기 때문에 소수점 숫자들의 연산을 정확하게 계산하지 못하기에 toBeCloseTo를 사용해야한다.
toMatch(정규표현식) : 문자열안에 해당 값이 있는지를 확인
toBeContain : 배열에 특정값이 있는 지를 확인
클라이언트에서 서버와 비동기 작업을 진행 시
test에서도 비동기로 진행해줘야한다.
done() , async 등의 방법을 사용
//전역변수
let num = 10
beforeEach(()=>{
num =0
})
//전역변수
let num = 10
afterEach(()=>{
num =0
})
beforeAll : 전체 케이스가 시작되기 전 한번 실행된다
afterAll : 전체 케이스가 끝나고 한번 실행된다.
describe(설명, ()=>{묶음처리}) : 비슷한 것끼리 묶음 처리가 가능하다
https://www.youtube.com/watch?v=9xBjErtlr1o