Let`s study hard : 지대넓얕/TEST:Jest

[jest로 test하기] jest matcher 모음집 (+계속 추가중)

유니엘. 2021. 11. 8. 12:00
728x90

알고 있고, 배우고 있는 jest의 matcher들을 정리하는 포스팅으로 제가 더 많이 알아가면 알아갈수록 추가될 예정입니다~ ^0^

 

 

matcher란 jest에서 제공하는 테스트 결과값을 확인하는 함수.

 

하단에 존재하는 matcher list.

ctrl + f로 찾는것을 권장합니다.

  • toBe
  • not.toBe
  • toEqual
  • toStrictEqual
  • toBeNull
  • toBeFalsy
  • toBeTruthy

 

 

 


toBe
test('toBe 사용법', () => {
  expect(결과값).toBe(기대값);
});
// 테스트 통과 사례
test('1 = 1이다', () => {
  expect(1).toBe(1);
});

기대값과 결과값의 일치 여부 확인 - 일치 해야 테스트 통과

 

not.toBe
test('not toBe 사용법', () => {
  expect(결과값).not.toBe(기대값);
});
// 테스트 통과 사례
test('1+1은 1이 아니다', () => {
  expect(1+1).not.toBe(1);
});

기대값과 결과값의 일치 여부 확인 - 일치 해야 테스트 통과

 

toEqual
test('toEqual 사용법', () => {
  expect(결과값).toEqual(기대값);
});
/**
 * fn.user = (name, age) => ({name, age});
 */
 
// 테스트 통과 사례
test('두 user object가 서로 일치한다', () => {
  expect(fn.user('김철수', 10)).toEqual({
    name: '김철수',
    age: 10
  });
});

기대값과 결과값의 일치 여부 확인 - 단순 값만 일치하면 통과 (toBe와의 차이점)

 

toStrictEqual
test('toStrictEqual 사용법', () => {
  expect(결과값).toStrictEqual(기대값);
});
/**
 * fn.user = (name, age, adress) => ({
 *  name, age, adress: undefined
 * });
 */
 
// 테스트 통과 사례
test('두 user object가 일치한다.', () => {
  expect(fn.user('김철수', 10, '서울시')).toStrictEqual({
    name: '김철수',
    age: 10,
    adress: '서울시'
  });
});

// 테스트 실패 사례 -> 요구하는 주소값이 없다.
test('두 user object가 일치하지 않는다.', () => {
  expect(fn.user('김철수', 10)).toStrictEqual({
    name: '김철수',
    age: 10
  });
});

기대값과 결과값의 일치 여부 확인 - 요구되는 모든 요소들을 충족해야 통과

 

toBe와 toEqual과 toStrictEqual의 차이점

https://yuniel.tistory.com/47

 

[jest로 test하기] toBe vs toEqual vs toStrictEqual

toBe vs toEqual jest를 처음 배우면 예시로 가장 많이 나오는 것이 아마 toBe일 것이다. test('1 = 1이다.', () => { expect(1).toBe(1); }); 영어처럼 해석을 해 본다면 아마 1이 1이기를 기대한다 정도 되지..

yuniel.tistory.com

 

toBeNull
test('toBeNull', () =>{
  expect(결과값).toBeNull();
});

 

// 테스트 통과 사례
test('null = null이다.', () =>{
  expect(null).toBeNull();
});

기대값과 결과값의 일치 여부 확인 - 결과값이 null이어야만 통과

 

toBeFalsy
test('toBeFalsy', () =>{
  expect(결과값).toBeFalsy();
});
// 테스트 통과사례
test('toBeFalsy', () =>{
  expect(0).toBeFalsy();
});

기대값과 결과값의 일치 여부 확인 - 결과값이 거짓이어야만 통과

 

toBeTruthy
test('toBeTruthy', () =>{
  expect(결과값).toBeTruthy();
});
// 테스트 통과 사례
test('toBeTruthy', () =>{
  expect(1).toBeTruthy();
});

기대값과 결과값의 일치 여부 확인 - 결과값이 진실이어야만 통과

 

 

 

728x90