JavaScript

Jest를 사용한 JavaScript Test - 기본

인어공쭈 2023. 10. 19. 16:58

Jest는 Facebook에서 개발한 JavaScript 테스트 프레임워크로, JavaScript 애플리케이션의 품질을 유지하고 개선하는 데 도움이 된다.

 

자 이제 한번 사용방법을 알아보자.

 

1. Jest 설치

npm install --save-dev jest

 

2. 테스트 파일 생성
Jest 테스트 파일은 일반적으로 .test.js 또는 .spec.js 확장자를 사용

// example.test.js

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

 

3. 테스트 실행

npx jest

 

4. 테스트 작성

test('2와 2는 같아야 합니다', () => {
  expect(2).toBe(2);
});

test('3과 5는 같지 않아야 합니다', () => {
  expect(3).not.toBe(5);
});

 

 

다음글에서 테스트 작성과 테스트 더블(테스트 스텁, 목, 스파이)에 대해 더 자세히 다루어보자.

 

관련 Doc 는 하단을 참고.

 

 

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 추가시 생길수 있는 문제점!

Jest는 기본적으로 CommonJS 모듈 시스템을 사용한다. 하지만 프로젝트에서 ES Module(ESM) 형식의 import/export 문법을 사용한다면, Jest는 이를 해석하지 못해 오류가 발생할수 있다. 따라서 바벨을 사용해서 이해할수 있게 한다.

 

예시)

// math.js
function add(a, b) {
    return a + b;
}
function subtract(a, b) {
    return a - b;
}
module.exports = {
    add,
    subtract
};
// app.js
const math = require('./math');

console.log(math.add(2, 3));        // 5
console.log(math.subtract(5, 2));   // 3

CommonJS 

 

// math.js
export function add(a, b) {
    return a + b;
}
export function subtract(a, b) {
    return a - b;
}
// app.js
import { add, subtract } from './math.js';

console.log(add(2, 3));        // 5
console.log(subtract(5, 2));   // 3

ESM

반응형