
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
반응형
'JavaScript' 카테고리의 다른 글
JavaScript - 원시값 (Primitive Values) 과 객체 (Feat. CloneDeep) (1) | 2023.12.07 |
---|---|
Jest를 사용한 JavaScript Test - 심화 (0) | 2023.10.19 |
JavaScript(JS) - kendo-ui / grid (0) | 2023.03.24 |
JavaScript(JS) - 호이스팅과 var, let, const (0) | 2023.03.20 |
ECMAScript 2022 특징 (0) | 2023.02.24 |