유닛 테스트란?
유닛 테스트 정의
유닛 테스트는 소프트웨어 개발에서 가장 작은 단위인 함수나 메서드와 같은 단위의 코드가 예상대로 동작하는지 검증하는 테스트이다.
한마디로 구성 요소들이 개별적으로 올바르게 작동하는지 확인하는 것이라 생각하면 쉽다.
개발자가 작성한 코드가 특정 입력에 대해 기대한 출력이 나오는지 확인이 가능하다.
자동화된 테스트로 수행되며, 코드가 변경될 때마다 반복적으로 실행하여 버그를 조기에 발견할 수 있다.
유닛 테스트는 어떤 단위로 테스트를 하는가?
1. 함수 테스트 : 함수가 의도한 대로 입력을 처리하고 결과를 반환하는지 검증
2. 메서드 테스트 : 메서드의 올바른 동작을 테스트
3. 로직 검증 : 계산, 변환, 데이터 처리 등을 담당하는 로직이 정확히 작동하는지 테스트
4. 예외 처리 : 예외 처리나 에러가 올바르게 처리되는지 테스트
// 예시: 간단한 함수
function add(a, b) {
return a + b;
}
// 유닛 테스트 (Jest 예시)
test('add 함수가 두 숫자를 더하는지 테스트', () => {
expect(add(2, 3)).toBe(5);
});
유닛 테스트를 위한 주요 라이브러리
원래는 명확한 입출력의 결과를 예상하고 작성해야해서 수동으로 작성해야하는데
테스트를 더 쉽게 작성하고, 실행할 수 있는 여러 라이브러리가 있다.
1. Jest
자바스크립트 환경에서 가장 많이 사용되는 유닛 테스트 라이브러리이다.
facebook에서 개발한 테스트 프레임워크로 React 프로젝트에서 많이 사용
특징
1. 빠르고 간단한 설정 : Jest는 설정이 간단하고 자동화된 테스트 환경을 제공
2. 내장된 assertion 라이브러리 : 내장된 expect() 함수를 제공
3. 비동기 코드 테스트 지원 : Promise나 async/await 테스트 가능
4. 모킹 기능 : 내장 모킹 기능을 제공하여 함수나 모듈을 모킹이 가능
2. Mocha
Node.js 환경에서 테스트 프레임워크로 사용
유연하고 확장성이 좋음
특징
1. 유연성 : 다른 라이브러리와 호환성이 뛰어남
2. 플러그인, 사용자 정의 : 다양한 플러그인, 테스트 환경을 커스터마이징 가능
3. 비공기 테스트 지원
4. 테스트 러너 : 테스트를 실행하고 결과를 출력하는 역할
3. Jasmine
Behavior-Driven-Development (BBD) 스타일을 따르는 테스트 프레임워크로 설정 없이 실행 가능
특징
1. BDD 스타일 : 테스트가 읽기 쉽게 작성할 수 있게 도움이 됨
2. 내장 assertion 라이브러리
3. 스파이와 모킹 : 함수의 호출을 추적하거나 모킹 가능
4. 비동기 테스트 : done() 콜백을 사용해 처리 가능
이번 과제에서 Jest를 활용해서 2가지 파일을 돌려봤고, Pass가 나왔었다.

'프론트엔드 > 기타' 카테고리의 다른 글
프론트엔드 에러 모니터링, 로그 데이터 수집의 필요성 (0) | 2025.02.16 |
---|---|
JWT - Access Token, Refresh Token은 무엇인가 (0) | 2025.02.16 |
[최종 프로젝트 - 리팩토링] vercel 배포 오류 (document is not defined) > netlify (0) | 2024.12.19 |
[최종 프로젝트] 최종 프로젝트 회고 (1) | 2024.11.27 |
[최종 프로젝트] Supabase 테이블 오류 메세지 (0) | 2024.10.28 |