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")
});