[jest] jest 를 이용한 코테 자체 테스트

공진용·2023년 5월 20일
1

프로그래머스의 코딩 테스트를 보면

저렇게 테스트 케이스 추가하기가 있는데,

이 녀석을 로컬에서 추가할 수 있으면 좋겠다고 생각해 Jest 를 사용해 자체 테스트를 도입해봤다.

▶ jest 란?

Facebook(현 Meta) 출신의 jest는 React와 더불어 많은 자바스크립트 개발자들로 부터 좋은 반응을 얻고 있는 테스팅 라이브러리이다.
jest는 라이브러리 하나로, Test RunnerTest Matcher 그리고 Test Mock 프레임워크까지 제공해준다고 하는데, 이 녀석들이 뭔지는 다음에.

▶ 사용법

  1. 설치

npm 명령어를 통해 jest를 설치한다.

npm i -D jest
  1. 준비

package.json 에서 스크립트 명령을 test 를 'jest' 로 변경한다.

테스트할 대상의 기능을 모듈로 익스포트한다.

테스트를 위한 파일을 만들고, 방금 익스포트했던 모듈을 임포트하여 테스트한다.

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

it('짝수 홀수 테스트', () => {
    expect(oddEven.solution(7)).toBe("Odd");
});

Test 파일은 xxx.spec.js 혹은 xxx.test.js 형식으로 만들어야 한다.

  1. 실행

터미널에서 npm test 를 입력하면 끝

아래처럼 그룹으로 묶어서 테스트도 가능하다

describe('멋쟁이 테스트 그룹', () => {
    it('짝수 홀수 테스트', () => {
        expect(oddEven.solution(7)).toBe("Odd");
    });

    it('이진 탐색 테스트', () => {
        expect(binary.binarySearch([1,4,6,9,100,200], 9)).toBe(3);
    });
});

▶ 그 외 jest 명령어

toBe(a) // 예상한 값이 매개변수와 같은 값일 것인지 확인합니다.
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() // 예외를 발생시키는지 확인합니다.

▶ 마치며

간단한 유닛 테스트를 하나 작성해봤다.
이 글은 jest 에 관한 정말 기초적인 사용법이며 추후 jest 에 관해 더 올릴 생각이다.

jest 공식 문서
https://jestjs.io/docs/getting-started

profile
좋은 문장이 될 FE 개발자

0개의 댓글