일반적인 Jest 매처

8546 단어 testing
다른 결과를 테스트하기 위해 매처라는 것을 사용하는 Jest.
이러한 매처를 사용하여 기준이 우리가 기대하는 것과 일치하는지 확인할 수 있습니다.

previous article에서 toBeTruthytoBeFalsy를 사용했습니다.

그러나 우리가 활용할 수 있는 많은 다른 것들이 있습니다. 이 기사에서는 일반적으로 사용되는 몇 가지를 살펴보겠습니다.

기본 매처



가장 간단한 형태로 toBe 매처를 사용하여 특정 값이 "되어야"한다고 가정할 수 있습니다.

예를 들어:

test('two plus two is four', () => {
  expect(2 + 2).toBe(4);
});


이것은 우리가 항상 결과가 4라고 예상하는 계산입니다.
문자열 조작을 결정하는 데에도 동일하게 사용할 수 있습니다.

test('uppercase is correct', () => {
  expect('abc'.toUpperCase()).toBe('ABC');
});


객체가 특정 형식인지 확인하려는 경우도 종종 있습니다.
이를 위해 toEqual 검사를 사용할 수 있습니다.

test('should modify a object', () => {
  const data = { foo: 'bar' };
  data['baz'] = 'fuu';
  expect(data).toEqual({ foo: 'bar', baz: 'fuu' });
});


잘 사용되는 또 다른 방법은 특정 기준이 더 이상 충족되지 않는지 확인하는 것입니다.
때때로 우리는 정확한 결과를 알지 못하지만 그 결과가 구체적이기를 원하지는 않습니다.

0인 주사위가 있다고 가정해 봅시다.

test('roll the dice', () => {
  let dice = 0;
  expect(rollDice(dice)).not.toBe(0);
});


배열의 경우 특정 요소가 배열에 포함되어 있는지 확인하고 싶을 수 있습니다.

이를 위해 toContain 테스트를 사용할 수 있습니다.

test('Dont forget the milk', () => {
  const shoppingList = ['coffee', 'eggs', 'milk'];
  expect(shoppingList).toContain('milk');
});


진실성을 판단하다



우리가 본 것처럼 true 또는 false 인 항목을 확인할 수 있지만 몇 가지 추가 truthiness 확인이 있습니다.
  • toBeNull : 출력이 정확하다면 null
  • toBeUndefined : 출력이 정확하다면 undefined
  • toBeDefined : undefined를 제외한 모든 것
  • toBeTruthy : 사실로 간주되는 모든 것
  • toBeFalsy : 거짓으로 간주되는 모든 것

  • 이는 특정 어설션을 확인하고 특히 이러한 어설션 중 하나가 아닌지 확인하는 데 매우 유용할 수 있습니다.

    숫자로 계산하기



    지금까지 우리는 toBe를 사용하여 특정 숫자를 일치시키는 것을 보았습니다.

    그러나 우리는 한 단계 더 나아가 숫자가 일치해야 하는 정도를 결정할 수도 있습니다.
  • toBeGreaterThan : 특정 숫자보다 더 중요해야 함
  • toBeGreaterThanOrEqual : 특정 숫자보다 크거나 같음
  • toBeLessThan : 일정수 미만
  • toBeLessThanOrEqual : 특정 수보다 작거나 같음
  • toBeCloseTo : 부동 소수점이 특정 소수점에 가까워지는 경우

  • 문자열 정규식 일치



    종종 우리는 특정 부분에 기반한 문자열만 일치시키길 원합니다.
    나머지 값을 100% 알지 못할 수도 있기 때문입니다.

    이를 위해 toMatch 를 사용할 수 있습니다. 정규 정규식을 매개변수로 사용합니다.

    test('Test for part of string', () => {
      expect('Christian').toMatch(/Chris/);
    });
    


    반대로 이 문자열에 부분이 없는지 확인할 수 있습니다.

    test('Make sure nothing went wrong', () => {
      expect('Something went wrong, sorry').not.toMatch(/wrong/);
    });
    


    Note: The above will fail as we do have the word "wrong" in our test case



    하지만 더 있습니다!



    이것은 몇 가지 기본 작업이지만 사용할 수 있는 작업의 전체 목록은 아닙니다.

    많은 것들이 요소가 화면에 표시되는지 확인하는 데 매우 유용하므로 나중에 살펴보겠습니다.

    항상 사용하는 테스트는 무엇입니까?

    읽어주셔서 감사합니다. 연결합시다!



    제 블로그를 읽어주셔서 감사합니다. 내 이메일 뉴스레터를 구독하고 Facebook에 연결하거나

    좋은 웹페이지 즐겨찾기