본문 바로가기
Testing/Jest

[Jest] Jest 기초 문법

by 썸머워즈 2022. 9. 27.
반응형

Jest 기초 문법

Jest에서는 정말 다양한 메서드들을 제공하고 있는데,

그중에서도 기본적으로 자주 사용하게 될 메서드에 대해서만 알아보고자 한다.

 

설명을 위해 간단한 예제 코드를 살펴보고 해당 문법들에 대해 알아보자.

const sum = require("../sum.js");

describe("simple js function test", () => {
  let num;
  beforeEach(() => {
    num = 1;
  });
  afterEach(() => {
    num = 0;
  });

  it("num is 1", () => {
    expect(num).toBe(1);
  });

  test("adds 1 + 2 to equal 3", () => {
    expect(sum(1, 2)).toBe(3);
  });

  test("array test", () => {
    expect([num, sum(1, num)]).toEqual([1, 2]);
  });
});

* 테스트 코드는 이전 게시글을 기반으로 작성되었다. (sum이라는 함수)


describe

describe테스트를 그룹화하는 즉, 테스트 단위를 묶는 가장 큰 단위이다.

describe에 설명을 적어 테스트 단위들을 하나로 묶어서 관리할 수 있게 해주는 역할을 한다.

심지어 describe는 중첩이 가능해서 테스트를 자유롭게 그룹화해서 관리할 수 있다.

(참고: https://jestjs.io/docs/api#describename-fn)

test, it

Jest에서는 test()와 it()을 통해 기본 테스트를 진행한다.

test()와 it()은 동일한 기능을 수행하며, it이 등장한 배경에는 다른 테스트 프레임워크에서 사용되기 때문에 추가된 문법이다.

(참고: https://jestjs.io/docs/api#testname-fn-timeout)

expect

expect값을 테스트할 때마다 사용된다.

expect는 혼자서 사용하는 게 아니라 expect() 안에 테스트할 변수나 값을 넣고 matcher 함수들 즉, toBe/toEqual 같은 것들과 같이 사용된다.

(참고: https://jestjs.io/docs/expect#expectvalue)

toBe, toEqual

toBe기본 값을 단순 비교하거나, 객체 인스턴스의 참조 ID를 확인하는데 사용된다.

공식문서에서는 부동 소수점 숫자와는 함께 사용하지 말라고하며 대신 다른 것(toBeCloseTo)을 이용하라고 나와있다.

toEqual은 위 예제처럼 배열이나 객체 내부까지 깊은 비교를 진행해준다.

하지만 두 객체 인스턴스의 내부 값들만 비교해주는 것이지 두 참조 ID가 동일한지를 비교하는 것은 아니다.

(참고: https://jestjs.io/docs/expect#tobevalue / https://jestjs.io/docs/expect#toequalvalue)

beforeEach, afterEach

beforeEach각 테스트가 실행되기 전에 실행되는 전처리기이다.

위 예제를 보면 각 test() 와 it()이 실행하기 전에 beforeEach가 실행되며 num이 1로 할당되는 것이다.

afterEach각 테스트가 실행된 후에 실행되는 후처리기이다.

위 예제를 보면 각 test()와 it()이 실행한 후에는 num을 0으로 할당한다.

위 예제에서는 쓸모가 없어 보이지만 일부 임시 상태를 정리하는데 유용하게 사용된다.

 

하나 주의할 점은 before, after에서 실행되는 게 비동기 처리 같은 것이라면 기본 제한시간은 5초이다.

(참고: https://jestjs.io/docs/api#beforeeachfn-timeout / https://jestjs.io/docs/api#aftereachfn-timeout)


참고: https://velog.io/@seongkyun/JEST-%EC%82%AC%EC%9A%A9%EB%B2%95

 

JEST 사용법

Jest를 활용하여 테스트 코드를 작성해보자!

velog.io

 

반응형


댓글

TOP