JavaScript와 TypeScript로 작성된 애플리케이션을 테스트하기 위한 테스트 프레임워크
설정 없이 바로 사용할 수 있는 직관적인 프레임워크
주로 단위 테스트, 통합 테스트, 스냅샷 테스트를 작성하고 실행하는 데 사용됨
Facebook에서 개발하고 유지보수함
React 프로젝트에서 특히 많이 사용됨
JavaScript 프로젝트에서 널리 사용됨
자동화된 테스트를 통해 코드 품질 향상
예상치 못한 버그 방지
npm install --save-dev jest
*.test.js 또는 *.spec.jsnpx jest
sum.js
function sum(a, b) {
return a + b;
}
module.exports = sum;
sum.test.js
const sum = require('./sum');
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
asyncFunction.js
function fetchData() {
return new Promise((resolve) => {
setTimeout(() => resolve('data'), 1000);
});
}
module.exports = fetchData;
asyncFunction.test.js
const fetchData = require('./asyncFunction');
test('fetches data', async () => {
const data = await fetchData();
expect(data).toBe('data');
});
MyComponent.js
import React from 'react';
const MyComponent = () => {
return <div>Hello, Jest!</div>;
};
export default MyComponent;
MyComponent.test.js
import React from 'react';
import renderer from 'react-test-renderer';
import MyComponent from './MyComponent';
test('matches snapshot', () => {
const tree = renderer.create(<MyComponent />).toJSON();
expect(tree).toMatchSnapshot();
});