본문 바로가기

데브코스/웹 기반 문서 편집기 제작 프로젝트

단위 테스트

단위 테스트란? 

소프트웨어의 가장 작은 기능적 단위를 독립적으로 검증하는 테스트 방법

 

<주요 특징>

 

1. 독립성

: 다른 테스트나 외부 시스템에 의존하지 않고 독립적으로 실행

: 각 테스트는 서로 영향을 주지 않아야 함

 

2. 범위와 속도

: 하나의 함수, 메서드, 클래스 등 작은 단위에 집중

: 빠른 실행과 즉각적인 피드백 제공

: 자동화된 방식으로 반복 실행 가능

 

➡️ 단위 테스트는 소프트웨어의 지속 가능한 성장을 가능하게 하는 핵심 도구이며, 장기적인 개발 생산성을 유지하는데 필수적이다. 

 

BE 단위 테스트

 

: 독립적으로 테스트할 수 있는 함수/ 메서드들은 모두 테스트

: 몇 개의 모듈이 조합하여 결과를 만들어야 하는 경우가 많음

  • 발생할 수 있는 요청 각각에 대한 테스트 케이스들을 마련하는 것이 합리적
  • 대부분의 요청에 대해서는 데이터베이스 및 쿠키 상태를 가지는 객체가 결부되어 있음
  • ➡️ Mock 을 이용하여 테스트 대상을 분리하는 것이 필요

 

FE 단위 테스트

 

< 만족해야 하는 조건들 >

  • HTML 요소들의 생성(렌더링)
  • "회원가입" 버튼의 클릭 => onSubmit callback 의 호출
  • input 요소들에 의한 올바른 인자의 전달
  • "로그인" 링크의 클릭 => /login  으로 이동
  • "회원가입" 버튼의 클릭(단, "비밀번호"와 "비밀번호 확인" input 에 입력된 내용의 불일치)

       : onSubmit callback 호출 발생하지 않음

       : alert 로 경고 메시지 발생  


🌟 배운 점

오늘은 단위 테스트, 컨테이너화에 대해서 배웠다.  단위 테스트를 하면 버그를 조기에 발견하고 수정이 가능해 품질이 향상되고, 빠른 피드백을 통해 개발 생산성이 향상된다고 한다. 프로젝트를 하다 보면, 점점 규모가 커질수록 테스트를 한 번에 하기 어렵고, 생각하지 못한 오류가 발생하는 경우가 많은데 이를 방지하기 위해 개발 과정에서 지속적으로 단위 테스트를 실행하면 훨씬 퀄리티가 좋은 프로젝트를 수행할 수 있을 것 같다.