Jest 맛보기

🐳ㅇㅡㄴㄱㅓ·2023년 2월 1일

Jest

npm install jest --save-dev
  • 설치 후 package.json의 test 부분을 jest로 변경

matcher

  • toBe : 값이 정확하게 일치하는지 테스트할 때 사용
  • toEqual / toStrictEqual : 객체나 배열을 비교할 때는 재귀적으로 돌면서 비교해야하기 때문에 toEqual을 사용하고 보다 엄격한 체크를 위해서(깊은 비교)는 StrictEqual을 사용
  • toBeNull : null 에만 일치
  • toBeUndefined : undefined에만 일치
  • toBeDefined : defined
  • toBeTruthy : true 와 일치
  • toBeFalsy : false와 일치
  • toBeGreaterThan : 크다
  • toBeGreaterThanOrEquel : 크거나 같다
  • toBeLessThan : 작다
  • toBeLessThanOrEqual : 작거나 같다
  • toBeCloseTo : 소수점 비교 시 값이 가까운지 근사치인지 비교. ex) 0.1 + 0.2 toBe로 테스트한다고 해서 0.3 안 나옴
  • toMatch : 정규식으로 문자열 비교
  • toContain : 배열에서 특정요소가 있는지 비교
  • toThrow: 예외를 체크하기 위해 사용, toThrow 인수에 무슨 에러인지 추가해주면 구체적인 에러비교도 가능

그 외 기타등등등 matcher

비동기코드 테스트하는 방법

  • done이라는 콜백함수를 test 구문 함수 인수로 추가해주고, 예정된 callback 함수에서 done()를 실행
  • Promise를 사용하는 경우
  • resolves, rejects matcher 사용
  • async, await를 사용

테스트 전/후 작업

  • beforeEach() : 각 테스트 직전에 실행
  • afterEach() : 각 테스트 직후에 실행
  • beforeAll() / afterAll()
  • .only() 를 붙이면 해당 테스트만! 실행 / .skip()을 붙이면 테스트 제외

Mock 함수

  • XXX.mock.calls : mock 함수가 몇번 호출되었는지 호출될 때 인수는 무엇이었는지 배열로 들어있음
  • XXX.mock.results : mock 함수의 리턴된 결과가 배열로 저장되어 있음
  • XXX.mock.resolvedValue : 를 사용해서 값을 세팅하면 비동기 함수를 흉내낼 수 있음.
  • jest.mock('대상함수') : 대상함수를 mock함수로 바꿔줌 -> mocking module. 실제로 함수가 동작하지는 않지만
profile
재활훈련 중

0개의 댓글