관리 메뉴

프론트엔드 정복하기

Jest 본문

테스팅 라이브러리/JEST

Jest

GROWNFRESH 2020. 11. 2. 17:31

Jest는 페이스북에서 만든 테스팅 라이브러리다. 자바스크립트 개발자들로부터 좋은 반응을 얻고 있다. 

 

설치

npm i --save-D jest

-D : 개발 dependency로 설치

 

 

test 스크립트 수정

package.json 파일에서

"scripts":{
	"test":"jest"
}

 

npm test 라고 입력하면 jest command를 실행할 수 있다.

 

 

 

테스트 코딩 파일 생성

Jest는 기본적으로 test.js로 끝나거나, __test__ 디렉터리 안에 있는 파일들을 테스트 파일로 인식한다.

만약 특정 테스트 파일만 실행하고 싶은 경우에는 터미널창에 npm test <파일이나 경로>를 입력하면 된다.

 

 

테스트 코드 기본

test.js 파일을 생성하고, 그 안에 다음과 같이 코드를 입력한다.

test("1 is 1", () => {
  expect(1).toBe(1)
})

=> npm test를 입력하면 test가 통과됐다고 나온다.

 

 

 

 

**위에서 toBe 부분에서 사용되는 함수를 흔히 Test Matcher 라고 한다.

Test Matcher의 종류

 

toBe 함수 숫자, 문자와같은 객체가 아닌 기본형(primitive)값을 비교할 때 사용 test("1 is 1", ()=>{
   expect(1).toBe(1)
})
toEqual 함수 객체 검증 function getUser(id){
   return{
      id,
      email : `user${id}@test.com`
   }
}

test("return a user object", ()=>{
   expect( getUser(1) ).toEqual({
        id:1,
        email: `user1@test.com`
   })

})
toBeTruthy 함수   test("number 0 is falsy but string 0 is truthy", ()=>{
   expect(0).tobeFalsy( )
   expect("0").toBeTruthy( )
})
toBeFalsy 함수  
toHaveLength 함수

배열의 길이를 체크

test("array", ()=>{
   const colors=["Red", "Yellow", "Blue"]
   expect(colors).toHaveLength(3)
})
toContain 함수 특정 원소가 배열에 들어있는지 테스트 test("array", ()=>{
   const colors=["Red", "Yellow", "Blue"]
   expect(colors).toContain("Yellow")
})
toMatch 함수 정규식 기반의 테스트 test("string", ()=>{
   expect(getUser(1).email).toBe("user1@test.com")
   expect(getUser(2).email).toMatch(/.*test.com$/)
})
toThrow 함수 예외 발생 여부 테스트  
.not 메소드 어떤 Matcher 함수가 불만족하는지 테스트 test("array", ()=>{
   const colors=["Red", "Yellow", "Blue"]
   expect(colors).not.toContain("Green")
})

 

 

참고 사이트

www.daleseo.com/jest-basic/