Jest 테스트 도구

728x90

Jest 테스트 도구

Jest

matcher를 사용하여 사용자가 다양한 방식으로 테스트하도록 도와줌

matcher: 기대한 값이 실제 반환된 값과 일치하는지 확인하는 작업

 

실행 함수

  -describe( ): test 단위를 묶는 가장 큰 단위

  -test( ),it( ): 테스트를 진행, 기능의 차이는 없으나 it( )은 test( )의 alias라고 함

√. test.each( ) 사용하면, 여러 개의 테스트 케이스 동시 구동 가능

  -expect( ): 테스트를 진행할 코드

  -beforeEach( )/afterEach( ): 테스트를 진행하기 전 /  후 1회 실행하는 전처리기 / 후처리기

  

실행 순서

  1. describe( ) 단위로 test 진행

  2. beforeEach( ) 로 전처리 실행

  3. test( ) / it( ) 마다 expect( ) 내 코드를 실행

  4. 결과를 toBe( ) / toEqual( ) 내 값과 비교

  5. afterEach( ) 로 후처리 실행

 

원시값 모처 함수

number, string, boolean 등

not 추가 가능하다. (not.toBe( ))

  -toBe( ): 해당 값과 일치하면 통과

  -toBeNull( )/toBeUndefined( ): null / undefined 인 경우 통과

  -toBeDefined( ): undefined 가 아닌 경우 통과

  -toBeTruthy( )/toBeFalsy( ): trusy / falsy 한 값이면 통과

  -toBeGreaterThan( )(이하 / 초과 / 미만)  : 이상 등 (이하 / 초과 / 미만) 일 때 통과 

  (0 ~ 100 범위값 검증하고 싶으면, expect 2개 toBeGreaterThan / toBeLessThan 사용)

  -toMatch(/정규표현식/): 정규표현식 문자열과 일치하면 통과

  -toBeCloseTo( ): 부동소수점이 일치하면 통과

√. 부동소수점은 toBeCloseTo( ), toEqual( )을 사용해서 비교해야 함 (toBe( )는 error)

 

참조값 모처 함수

객체, 배열

  -toEqual( ): 해당 값이 포함이면 통과

  -toStrictEqual( ): 더 엄격한 비교, 완전히 같아야 통과

  -toContain( ): 배열에서 포함되어 있으면 통과(includes 랑 비슷)

 

error 모처 함수

에러 발생 여부를 체크, 에러 메시지 체크

  -toThrow(에러메시지 or /정규표현식/): 에러메시지가 같으면 통과

√. 에러 발생 함수를 다른 함수로 감싸지 않고 expect 의 인자로 전달되면, 반환값 자체를 error로 받아들임

fn.test.js // 테스트 코드
const fn = require("./fn");

test("에러가 발생하나요?", () => {
  expect(()=> fn.throwErr()).toThrow("Error message")
});

 

 

 

 

 

 

 

728x90