Junit5란?
- Patform: JVM에서 테스트 프레임 워크를 실행시키기 위한 기반. TestEngine API 제공
- Jupiter: JUnit5를 지원하는 TestEngine API 구현체
- Vintage: Junit4와 3을 지원하는 TestEngin 구현체
단위테스트란?
응용 프로그램에서 테스트 가능한 가장 작은 소프트웨어를 실행하여 예상대로 동작하는지 확인하는 테스트이다.
Junit4와 Junit5의 차이점
JUnit4는 하나의 Jar파일로 dependency가 추가되어, Junit이 참조하는 다른 라이브러리가 있는 형태인데 JUnit5부터는 그 자체로 여러 모듈화가 된다.
어노테이션
- @Test: 테스트 메서드임
- @BeforeAll: 해당 클래스에 위치한 모든 테스트 메서드 실행 전에 딱 한 번 실행되는 메서드
- @AfterAll: 해당 클래스에 위치한 모든 테스트 메서드 실행 후에 딱 한 번 실행되는 메서드
- @BeforeEach: 해당 클래스에 위치한 모든 테스트 메서드 실행 전에 실행되는 메서드
- @AfterEach: 해당 클래스에 위치한 모든 테스트 메서드 실행 후에 실행되는 메서드
- @Disable: 해당 메서드를 테스트하지 않음
- @RepeatedTest
- @ParameterizedTest: 테스트에 여러 다른 매개변수를 대입해가며 반복 실행할 때 사용
- @Nested: 테스트 클래스 안에 내부 클래스르 정의해 계층화할 때 사용
Assertion
테스트 케이스의 수행 결과를 판별하는 메서드. 기본적으로 개발자가 의도한 기댓값과 실제 로직 수행 후 도출되는 결과값이 동일한지 판별하는 assertEquals, 결과 값이 null인지 판별하는 메서드 assertNull, 예외가 발생하는지 확인하는 assertThrows 메서드 등이 있다.