-
JUnit이란?
프로그래밍 기초 공부
2023. 1. 3. 17:52
유닛 테스트
- 프로그래밍에서 모든 함수와 메서드에 대한 테스트 케이스를 작성하여 의도된 대로 잘 동작하는지 검증하는 절차
- 개발 수명주기의 정황과 시스템에 의존적
- 시스템의 다른 부분에서 격리하여 독립적으로 수행해야 하는 테스트
- 가짜 프로그램, 객체(Mock Object)를 만들어서 활용 가능
- 정교하게 테스트 하기 위해서는 Test Case 작성은 필수
유닛 테스트 장점
- 개발단계 초기에 문제를 발결할 수 있게 도와줌
- 리팩토링 또는 라이브러리 업그레이드 등에서 기능 확인을 도와줌(회귀 테스트)
- 기능에 대한 불확실성 감소
- 시스템에 대한 실제 문서 또는 예제로써 사용가능
- 빠른 피드백과 기능을 안전하게 보호 가능
- 프로그램의 안정성을 높임
- System.out.println()으로 하는 번거로운 디버깅이 필요없으며, 개발기간 중 대부분을 차지하는 디버깅 시간을 단축
JUnit
- 자바 프로그래밍 언어용 유닛 테스트 프레임워크
- 테스트 결과는 Test클래스로 개발자에게 테스트 방법 및 클래스의 History를 공유 가능
- assert 메서드로 테스트 케이스의 수행 결과를 판별
- JUnit4, JUnit5를 대게 사용
- 어노테이션으로 간결하게 사용 가능(JUnit4부터)
JUnit5
JUnit5는 크게3가지 하위 프로젝트의 여러 모듈로 구성
JUnit5 = JUnit Platform + JUnit Jupiter + JUnit Vintage
- JUnit Platform
- JVM에서 테스트 프레임워크를 시작하기 위한 기반 역할
- 테스트하기 위한 TestEngine API를 제공
- Command line을 사용할 수 있는 Console Launcher 제공
- JUnit 4 기반의 테스트를 제공
- JUnit Jupiter
- JUnit 5에서 테스트 및 확장을 위한 새로운 프로그래밍 모델과 확장 모델의 조합
- Platform에서 Jupiter 기반 테스트를 실행하기위한 TestEngine을 제공
- JUnit Vintage
- Platform에서 JUnit 3와 JUnit 4 기반의 테스트를 할 수 있는 TestEngine을 제공한다.