JUnit 5 모듈 구성
- JUnit 플랫폼 : 테스팅 프레임워크를 구동하기 위한 런처와 테스트 엔진을 위한 API를 제공한다.
- JUnit 주피터(Jupiter) : JUnit 5를 위한 테스트 API와 실행 엔진을 제공한다.
- JUnit 빈티지(Vintage) : JUnit 3와 4로 작성된 테스트를 JUnit 5 플랫폼에서 실행하기 위한 모듈을 제공한다.
주요 단언 메서드
Assertions 클래스는 assertEquals()를 포함해 대표적으로 아래 표에 있는 단언 메서드를 제공한다.
메서드 | 설명 |
assertEquals(expected, actual) | 실제 값이 기대하는 값과 같은지 검사한다. |
assertNotEquals(expected, actual) | 실제 값이 특정 값과 같지 않은지 검사한다. |
assertSame(Object expected, Object actual) | 두 객체가 동일한 객체인지 검사한다. |
assertNotSame(Object unexpected, Object actual) | 두 객체가 동일하지 않은 객체인지 검사한다. |
assertTrue(boolean condition) | 값이 true인지 검사한다. |
assertFalse(boolean condition) | 값이 false인지 검사한다. |
assertNull(Object actual) | 값이 null인지 검사한다. |
assertNotNull(Object actual) | 값이 null이 아닌지 검사한다. |
fail() | 테스트를 실패 처리한다. |
assertThrows(Class<T> expectedType, Executable executable) | executable을 실행한 결과로 지정한 타입의 exception이 발생하는지 검사한다, |
assertDoesThrows(Executable executable) | executable을 실행한 결과로 exception이 발생하지 않는지 검사한다. |
테스트 라이프사이클
JUnit은 각 테스트마다 아래 순서로 코드를 실행한다.
- 테스트 메서드를 포함한 객체 생성
- (존재한다면) @BeforeEach 어노테이션이 붙은 메서드 실행
- @Test 어노테이션이 붙은 메서드 실행
- (존재한다면) @AfterEach 어노테이션이 붙은 메서드 실행
@BeforeAll, @AfterAll 어노테이션을 붙이면, 클래스의 테스트가 시작되기 전, 후 단 1회씩 수행됨.
실행 순서 간략 정리
- @BeforeAll
- @BeforeEach
- @Test
- @AfterEach
- @BeforeEach
- @Test
- @AfterEach
- @AfterAll
@DisplayName | 테스트에 표시 이름 붙이기 가능 |
@Disabled | 특정 테스트를 실행하지 않고 싶을 때 disable 가능 |
'테스트 > 테스트코드' 카테고리의 다른 글
Service Test 작성 방법 및 예시 (0) | 2023.08.15 |
---|---|
Mockito, @Mock, @MockBean 등 어노테이션 설명 잘 되어 있는 블로그 (0) | 2023.08.13 |
JUnit5 관련 어노테이션이나 설정관련 설명 정리 (0) | 2023.04.19 |
스프링부트 각 계층 테스트 하는 방법 (0) | 2023.01.03 |
Junit5에서 사용되는 주요 어노테이션 (0) | 2023.01.03 |
댓글