새로운 기능을 추가하거나 남의 코드를 고쳤을 때, "기존에 잘 되던 결제 기능이나 로그인 기능이 망가지지 않았을까?" 걱정하게 됩니다. 이때 사람이 일일이 클릭해보는 대신, 똑똑한 검사 로봇(Jest)을 시켜서 단 1초 만에 수백 개의 기능을 자동으로 검사(Test)하여 초록색(PASS)이나 빨간색(FAIL) 도장을 찍게 만드는 실무 최고의 보험입니다.
사람이 브라우저에서 버튼을 누를 필요 없이, Jest 명령어를 실행하면 작성된 Test Suite 코드들이 로봇처럼 함수를 대신 실행해 보고 정답을 채점해 줍니다.
calculator.test.js (테스트 코드)
// 테스트할 함수 (가정: 다른 파일에서 불러옴)
function calculateDiscount(price, userType) {
if (userType === 'VIP') return price * 0.8;
else if (userType === 'NORMAL') return price;
throw new Error('Unknown User Type');
}
// 테스트 묶음 정의
describe('할인율 계산 함수 테스트', () => {
// 1. 성공 케이스 테스트
test('VIP 유저는 1만원짜리를 사면 8천원이 되어야 한다.', () => {
// expect(실제 실행 결과).toBe(내가 예상한 정답)
expect(calculateDiscount(10000, 'VIP')).toBe(8000);
});
// 2. 다른 성공 케이스 테스트
test('일반 유저는 할인이 적용되지 않는다.', () => {
expect(calculateDiscount(10000, 'NORMAL')).toBe(10000);
});
// 3. 에러 발생 테스트
test('이상한 등급을 넣으면 반드시 에러가 터져야 한다.', () => {
// 에러를 검사할 때는 함수를 한 번 더 감싸서 전달해야 함
expect(() => calculateDiscount(10000, 'GHOST')).toThrow();
});
});
localhost:3000/
🧪 Jest 테스트 러너 실행
Jest는 브라우저 화면이 필요 없습니다. 순수하게 터미널(콘솔) 환경에서 백그라운드로 작동하며 모든 코드를 자동으로 검증합니다.