Jest
Facebook에서 만든 JS 테스팅 프레임워크
검증을 실행하는 매처(matcher)와 모킹에 필요한 API들을 대부분 제공
jsdom
환경을 사용하여 브라우저와 동일하게 DOM API 호출 검증이 가능하다.
describe(), it(), test()
const myFamily = {
total: 3,
};
describe('나의 가족은', () => {
test('구성원 수가 3명이다.',() => {
expect(myFamily.total).toEqual(3);
});
});
Matcher
값이 특정 조건을 만족하는 지 검증할 수 있는 집합
jest에서는 expect()
를 사용하여 매처를 실행할 수 있고, 직관적이어서 테스트의 의도를 쉽게 파악할 수 있다.
Jest에서의 대표적인 Matcher
-
toBe() : 원시 값의 일치 여부 확인 / 객체의 참조 확인
-
toEqual() : 원시 값의 일치 여부 확인 / 객체의 모든 프로퍼티 값을 재귀적으로 비교 검증
-
toHaveBeenCalled() :
spy
를 사용하여 특정 함수가 호출 되었는지를 검증 /spy
는 함수의 호출 횟수와 호출 인자를 기록 -
toHaveBeenCalledWith() :
toHaveBeenCalled()
와 유사하며 함수에 넘어가 실행된 특정 인자까지 함께 검증 -
toHaveBeenCalledTimes() :
toHaveBeenCalled()
와 유사하며 함수가 정확히 몇번 호출되었는지 확인 가능 -
toHaveProperty() : 객체의 특정 키 값에 해당하는 프로퍼티 값을 확인
-
toMatch() : 문자열이 정규식에 대응하는 지 확인
-
toMatchObject() : 객체 프로퍼티의 하위 집합이 특정 객체와 일치하는지 확인
-
toThrow() : 특정 상황에서 에러가 발생하는 지 테스트