[Node] Express + Typescript에서 Jest로 테스트하기 - Matcher

tkppp·2022년 9월 1일
0

Jest

목록 보기
2/5

Common Matcher

JUnit에서 테스트할 때 주로 AssertJ가 제공하는 Matcher를 통해 테스트 결과를 검증했다. Jest에서 주로 사용되는 매처를 알아보자

expect(value)

expect() 는 값을 검증하기 위해 항상 사용하는 함수이다. 이 함수를 단일로 사용할 일은 거의 없고 반환하는Expect<T> 객체와 Matcher 함수와 연계하여 사용한다. AssertJassertThat() 함수와 유사하다

toBe(value)

주로 자바스크립트의 원시 타입을 검증하는데 사용한다. 객체에는 사용할 시 테스트가 실패한다. 또한 부동소수점 값을 테스트 시 실패하므로 toBeCloseTo() 를 사용해야한다

toEqual(value)

주로 객체를 검증하는데 사용한다. 모든 프로퍼티를 재귀적으로 탐색하므로 깊은 부분까지 객체를 비교할 수 있다

Truthiness Matcher

toBeDefined()

값이 할당되었는지 검증. not과 연계해 toBeUndefined()처럼 사용 가능

toBeUndefined()

값이 undefined 인지 검증. not과 연계해 toBeDefined()처럼 사용 가능

toBeNull()

값이 null 인지 검증

toBeTruely()

조건 또는 값이 참인지 검증. not과 연계해 toBeFalsy()처럼 사용 가능

toBeFalsy()

조건 또는 값이 거짓인지 검증. not과 연계해 toBeTruely()처럼 사용 가능

// 테스트 통과
test('false', () => {
  expect(false).toBeFalsy()
  expect(undefined).toBeFalsy()
  expect(null).toBeFalsy()
  expect(0).toBeFalsy()
  expect(2 < 1).toBeFalsy()
})

String Matcher

toMatch(regex)

문자열이 완전히 일치하는지의 여부는 toBe, toEqual 함수를 통해 확인할 수 있지만 toMatch(regex) 함수는 정규 표현식과 일치하는지 검증한다

Array, Iterable Matcher

containing(value)

배열이나 이터러블한 객체가 특정 값을 가지고 있는지 검증

Exception

toThrow(message | undefined)

에러가 던져지는 것을 검증하기 위한 매처. 사용할 때 expect()에 넘기는 검증하려는 함수가 wrapper 함수로 감싸져야지만 성공하므로 유의

More

이외에 더 많은 Matcher가 존재하니 공식 문서를 참조

0개의 댓글