Jest

김태완·2022년 8월 14일
0

프론트엔드

목록 보기
23/30
post-thumbnail

테스트 주도 개발인 TDD에 관심이 생겼다. 기존에 typescript를 사용하였지만 함수의 검증이 필요하여 테스트를 도입하고자 공부해보자.

Jest

  • None Config로 config파일 없이 사용가능하다.
  • unit test, intergration test, E2E test에 사용된다
    https://velog.io/@suasue/E2E-Integration-Unit-test
  • xx.test.js 또는 xx.test.ts 로 끝나는 파일은 모두 테스트 파일로 간주하여 npm test시 테스트를 시작한다

jest는 아래와같은 문법으로 테스트를 진행하며 toXXXX부분을 Matcher라고 부른다.

test("테스트 설명", ()=>{
	expect("검증 대상").toXXXX("검증 결과")
})

Matcher

  • toBe : 기본형(primitive)을 비교할때 사용
  • toEqual : 객체까지 검증가능
  • toBeTruthy, toBeFalsy : 검증대상이 truly한지, falsy한지를 검증
  • toHaveLength : 배열의 길이를 측정할때 검증
test("빈배열인가?", () => {
	const arr = [1,2,3,4,5];
	expect(arr).not.toHaveLength(0) // 이러면 빈배열인지 검증이 되겠군
})
  • toContain : 특정원소가 해당 배열에 있는지를 검증
  • toMatch : 정규표현식 기반의 검증이 필요할때 (toBe는 단순 문자열을 비교)
  • toThrow : 예외 발생여부를 테스트, 단 toThrow를 사용할때는 함수로 한번 감싸준뒤 사용해야한다. 그렇지않으면 실제로 예외처리를 발생시켜버린다.
test("throw when id is non negative", () => {
  expect(() => getUser(-1)).toThrow();
  expect(() => getUser(-1)).toThrow("Invalid ID");
});
profile
프론트엔드개발

0개의 댓글