유닛 테스트는 왜 필요한가

2025. 2. 16. 01:53·프론트엔드/기타
목차
  1. 유닛 테스트란?
  2. 유닛 테스트를 위한 주요 라이브러리

 

 

유닛 테스트란?

 

유닛 테스트 정의

유닛 테스트는 소프트웨어 개발에서 가장 작은 단위인 함수나 메서드와 같은 단위의 코드가 예상대로 동작하는지 검증하는 테스트이다.

한마디로 구성 요소들이 개별적으로 올바르게 작동하는지 확인하는 것이라 생각하면 쉽다.

 

개발자가 작성한 코드가 특정 입력에 대해 기대한 출력이 나오는지 확인이 가능하다.

자동화된 테스트로 수행되며, 코드가 변경될 때마다 반복적으로 실행하여 버그를 조기에 발견할 수 있다.

 

 

유닛 테스트는 어떤 단위로 테스트를 하는가?

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
  1. 유닛 테스트란?
  2. 유닛 테스트를 위한 주요 라이브러리
'프론트엔드/기타' 카테고리의 다른 글
  • 프론트엔드 에러 모니터링, 로그 데이터 수집의 필요성
  • JWT - Access Token, Refresh Token은 무엇인가
  • [최종 프로젝트 - 리팩토링] vercel 배포 오류 (document is not defined) > netlify
  • [최종 프로젝트] 최종 프로젝트 회고
장쫑이이
장쫑이이
  • 장쫑이이
    JongHoy
    장쫑이이
  • 전체
    오늘
    어제
    • 코딩공부하기 (41)
      • 프론트엔드 (41)
        • Next.js (12)
        • React (16)
        • TypeScript (2)
        • 상태관리 (1)
        • HTML&CSS (1)
        • 기타 (9)
      • 과거 공부 내용 (0)
        • JSCODE 그룹스터디 (0)
        • JS 객체 지향 프로그래밍 (0)
        • 리엑트 (0)
        • 제로초 - 웹 게임을 만들며 배우는 리엑트 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    styled-components
    setAttribute
    이중 for문
    팀프로젝트
    유클리드 호제법
    행렬의 덧셈
    git
    필터링
    github
    slice
    Filter
    속성 추가
    destructuring
    While문
    reduce
    map
    LastIndexOf
    토글
    useState
    isNan
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
장쫑이이
유닛 테스트는 왜 필요한가
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.