JUnit
에서 테스트할 때 주로 AssertJ
가 제공하는 Matcher
를 통해 테스트 결과를 검증했다. Jest
에서 주로 사용되는 매처를 알아보자
expect()
는 값을 검증하기 위해 항상 사용하는 함수이다. 이 함수를 단일로 사용할 일은 거의 없고 반환하는Expect<T>
객체와 Matcher
함수와 연계하여 사용한다. AssertJ
의 assertThat()
함수와 유사하다
주로 자바스크립트의 원시 타입을 검증하는데 사용한다. 객체에는 사용할 시 테스트가 실패한다. 또한 부동소수점 값을 테스트 시 실패하므로 toBeCloseTo()
를 사용해야한다
주로 객체를 검증하는데 사용한다. 모든 프로퍼티를 재귀적으로 탐색하므로 깊은 부분까지 객체를 비교할 수 있다
값이 할당되었는지 검증. not
과 연계해 toBeUndefined()
처럼 사용 가능
값이 undefined 인지 검증. not
과 연계해 toBeDefined()
처럼 사용 가능
값이 null 인지 검증
조건 또는 값이 참인지 검증. not
과 연계해 toBeFalsy()
처럼 사용 가능
조건 또는 값이 거짓인지 검증. not
과 연계해 toBeTruely()
처럼 사용 가능
// 테스트 통과
test('false', () => {
expect(false).toBeFalsy()
expect(undefined).toBeFalsy()
expect(null).toBeFalsy()
expect(0).toBeFalsy()
expect(2 < 1).toBeFalsy()
})
문자열이 완전히 일치하는지의 여부는 toBe, toEqual
함수를 통해 확인할 수 있지만 toMatch(regex)
함수는 정규 표현식과 일치하는지 검증한다
배열이나 이터러블한 객체가 특정 값을 가지고 있는지 검증
에러가 던져지는 것을 검증하기 위한 매처. 사용할 때 expect()
에 넘기는 검증하려는 함수가 wrapper 함수로 감싸져야지만 성공하므로 유의
이외에 더 많은 Matcher가 존재하니 공식 문서를 참조