단위 테스트(Unit Test)
- 단위 테스트 : 애플리케이션 코드의 특정한 단위, 특정 메서드나 메서드 그룹을 독립적으로 테스트
- 시스템 테스트(통합 테스트) : 배포 가능 단위로 애플리케이션을
jar
, war
형태로 배포하여 모든 것을 한꺼번에 테스트
- 모든 테스트 코드는
src/main
과 격리된 src/test
디렉토리에 위치
- 단위 테스트를 작성할 때는 특정한 메서드의 입력 및 출력에만 집중
- 모든 프로그래머에게 아주 중요한 능력
- 프로그래머의 실력은 얼마나 단위 테스트를 잘 작성하는지에 달려 있음
단위 테스트의 이점
- 버그를 조기에 발견할 수 있음
- 모든 메서드마다 단위 테스트를 하면 이를 통해 지속적 통합 방식(CI)을 구현할 수 있음
- 버그 추적 및 수정이 쉬워짐
- 단기적으로는 시간 등 비용이 증가할 수 있지만 장기적인 종합 유지 보수 관리 비용은 절감됨
주요 단위 테스트 프레임워크
- JUnit : 단위 테스트 프레임워크
- Mockit : 모킹 프레임워크
JUnit
- "Absense of failure is SUCCESS" : 실패가 없으면 통과한다.
- 특정 동작에 대한 Assert 검사를 진행하고, 하나라도 통과하지 못할 시 단위 테스트 불통과
JUnit 단위 테스트 생성
- 'New JUnit Jupiter(JUnit 5) test' 생성하면
~.junit
패키지 내 생성됨
- 명명법 : 일반적으로 테스트하고자 하는 코드 뒤에 'Test' 붙임
- 예시 : LoginHelper -> LoginHelperTest
- 여러가지 경우의 수에 맞추어 단위 테스트 코드 생성