본문 바로가기
테스트/테스트코드

JUnit 5 기초 (Chapter 5)

by 문자메일 2023. 5. 2.

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은 각 테스트마다 아래 순서로 코드를 실행한다.

  1. 테스트 메서드를 포함한 객체 생성
  2. (존재한다면) @BeforeEach 어노테이션이 붙은 메서드 실행
  3. @Test 어노테이션이 붙은 메서드 실행
  4. (존재한다면) @AfterEach 어노테이션이 붙은 메서드 실행

 

@BeforeAll, @AfterAll 어노테이션을 붙이면, 클래스의 테스트가 시작되기 전, 후 단 1회씩 수행됨.

 

실행 순서 간략 정리

  1. @BeforeAll
  2. @BeforeEach
  3. @Test
  4. @AfterEach
  5. @BeforeEach
  6. @Test
  7. @AfterEach
  8. @AfterAll

 

   
@DisplayName 테스트에 표시 이름 붙이기 가능
@Disabled 특정 테스트를 실행하지 않고 싶을 때 disable 가능

 

 

댓글