Jest Expect API

adam2·2022년 2월 1일
0

Expect

expect(value)

해당 값에 대해 assert하기 위해서 사용하고, 단독으로 사용하지 않고 보통 뒤에 macher 함수들을 붙여서 사용한다.

test('the best flavor is grapefruit', () => {
  expect(bestLaCroixFlavor()).toBe('grapefruit');
});

expect.extend(matchers)

커스텀한 macher를 추가할 때 사용한다.

custom matchers api

expect.extend({
  yourMatcher(x, y, z) {
    return {
      pass: true,
      message: () => '',
    };
  },
});

test('', () => {
  expect(100).yourMatcher(90, 110,1);
});

expect.anything()

null또는 undefined를 제외한 어떤 값도 매치할 수 있다.
toEqual이나 toBeCalledWith에 리터럴 벨류 대신 사용할 수 잇다.

Matcher

toBe(a)

예상한 값이 매개변수와 같은 값일 것인지 확인한다. 값을 비교하기위해 Object.is를 호출한다. (===보다 나음)
부동소수점에는 사용하지 x (0.2+0.1) toBeCloseTo를 사용
toBe는 참조 id를 체크하지만, assertion이 실패하면 deep comparison을 리포팅한다.

toEqual(obj) // 매개변수(객체)와 같은 값일 것이라 예상합니다. 객체가 가진 값의 비교가 가능합니다.
not.toBe(a) // 뒤의 결과를 부정하는 값과 비교합니다.

toBeNull() // 예상한 값이 null 인지 확인합니다.
toBeUndefined() // 예상한 값이 undefined 인지 확인합니다.
toBeDefined() // 예상한 값이 undefined 가 아닌지 확인합니다.
toBeTruthy() // 예상한 값이 truthy 한 값인지 확인합니다.
toBeFalsy() // 예상한 값이 falsy 한 값인지 확인합니다.

toBeGreaterThan(number); // number보다 큰 값인지 확인합니다.
toBeGreaterThanOrEqual(number); // number보다 크거나 같은 값인지 확인합니다.
toBeLessThan(number); // number보다 작은 값인지 확인합니다.
toBeLessThanOrEqual(number); // number보다 작거나 같은 값인지 확인합니다.
toBeCloseTo(float) // float인 매개변수와 같은 값인지 확인합니다. 부동소수점 에러를 해결하기 위해 고안되었습니다.

toMatch(string) // string을 포함하는 문자열인지 확인합니다.
toContain('item') // item을 포함하는 배열(iterator)인지 확인합니다.

toThrow() // 예외를 발생시키는지 확인합니다.

ref
https://usage.tistory.com/99
https://jestjs.io/docs/expect

0개의 댓글