본문 바로가기
Testing/Jest

Jest 사용하기

by 코딩쥐 2024. 9. 10.

Jest · 🃏 Delightful JavaScript Testing (jestjs.io)

 

Jest

By ensuring your tests have unique global state, Jest can reliably run tests in parallel. To make things quick, Jest runs previously failed tests first and re-organizes runs based on how long test files take.

jestjs.io

 

Jest는 JavaScript 테스트 프레임워크로, 내가 작성한 코드가 작동을 제대로 하는지를 검증하는 방법이다. Babel, TypeScript, Node, React, Angular, Vue 등에서 다양하게 사용할 수 있다.

 

JEST 시작하기

npm, Yarn, pnpm(기존 npm의 단점을 보완하기 위해 탄생한 패키지 매니저)으로 설치가 가능하다. 

// npm
npm install --save-dev jest

// yarn
yarn add --dev jest

// pnpm 
pnpm add --save-dev jest

 

npm 기준 설치방법

(1) npm init을 통해서 패키지를 생성한다. (-y : 설정값을 default값으로 설정)

 

(2) npm install jest --save-dev 를 통해 jest를 설치한다. (--save-dev: 해당 모듈이 개발단계에서만 사용)

 

(3) package.json에 들어가 scripts의 test를 "jest"로 변경한다.


JEST 사용하기

1. 테스트 파일 생성

(1) 테스트 함수를 작성한다. module.exports = 테스트할함수명; 으로 함수를 모듈화 시켜 내보낸다. 

//sum.js
function sum(a, b){
    return a+b;
}

module.exports = sum;

 

(2) Jest는 .test, .spec이 포함되어있는 파일이나 __tests__ 폴더에 작성되어있는 .js, .jsx, .ts, .tsx 파일을 감지하여 테스트를 시행한다. 

  • 테스트할함수파일명.test.js
  • 테스트할함수파일명.spec.js
  • __tests__폴더 안에 파일 생성

 

(3) const 테스트할함수명 = require("파일위치"); 를 통해 함수를 불러온다. 

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

 

(4) 테스트 할 내용을 작성한다. 

  • describe : 해당 테스트를 설명하는 주 함수, 관련된 테스트들을 그룹화한다. 
  • test (또는 it) : 실질적인 테스트를 수행하는 함수
  • expect : 예상하는 바에 대해서 정의하는 함수, matcher를 사용하여 실제 결과와 비교한다. 
//sum.test.js
const sum = require("../sum");


describe("sum 함수에 대한 테스트", () => {
    test("3더하기 2는 5다.", () => {
        expect(sum(3,2)).toBe(5);
    });

    test("2더하기 9는 10이 아니다.", () => {
        expect(sum(2,9)).not.toBe(10);
    })
})


2. 테스트 시행

npm test

 

테스트를 시행하면 해당 내용에 대한 결과가 아래와 같이 나온다. 

 

만약 테스트가 통과되지 않았다면 어디에서 통과되지 않았는지 확인할 수 있다. 

 

'Testing > Jest' 카테고리의 다른 글

Jest: Only와 Skip 사용해보기  (0) 2024.09.18
Jest : Matcher에 대해서  (1) 2024.09.18
Jest: Mock Function에 대해서  (0) 2024.09.11
Jest : 테스트 전 후 작업 설정하기  (0) 2024.09.11
Jest: 비동기 코드 테스트하기  (0) 2024.09.11