[SpringBoot] Junit5 사용법(2)

이수정·2023년 1월 11일

3. Jupiter API: Assertions

💡 테스트 수행 결과를 판별하는 메서드, 반환 타입은 void

💡 모든 Junit Jupiter Assertions는 static 메서드


[1] assertEquals(Object expected, Object executable, {실패 메시지})

기대하는 값과 수행한 값이 같으면 테스트 성공


[2] assertNotEquals(Object unexpected, Object executable)

기대하는 값과 수행한 값이 다르면 테스트 성공


[3] assertSame(Object unexpected, Object executable)

기대하는 값과 수행한 값이 같은 reference(객체)이면 테스트 성공


[4] assertTrue(boolean condition)

조건이 true면 테스트 성공


[5] assertFalse(boolean condition)

조건이 false면 테스트 성공


[6] assertNull(Object executable)

수행한 값이 null이면 테스트 성공


[7] assertNotNull(Object executable)

수행한 값이 null이 아니면 테스트 성공






4. JUnit5에 추가된 기능

[1] Assertions

  • assertAll(executables ...)
    : 매개변수로 받는 모든 테스트코드를 한 번에 실행
    💡 오류가 나도 끝까지 실행하고 결과를 한 번에 모아서 출력

  • assertThrows(expectedType, executable)
    : executable를 실행 시 expectedType의 예외가 발생하는지 확인

  • assertTimeout(duration, executable)
    : executable 실행 시 duration 시간 안에 완료되는지 확인


[2] Assumptions

특정 조건이 true면 테스트 실행, false면 테스트 종료
💡 주로, 특정 환경에서만 테스트해야 할 때 사용

  • assumeTrue
    : false일 때 이후로 테스트 전체가 실행되지 않는다.

  • assumingThat
    : 파라미터로 전달된 코드블럭만 실행되지 않는다.

@Test
void dev_only_test1() {
    assumeTrue("DEV".equals(System.getenv("ENV")), () -> "DEV 개발 환경이 아닙니다.");
    assertEquals("No", "No"); // 실행되지 않음
}

@Test
void dev_only_test2() {
    assumingThat("DEV".equals(System.getenv("ENV")),
        () -> {
            assertEquals("No", "No"); // 실행되지 않음
        });
    assertEquals("Yes", "Yes"); // 실행됨
}

참고자료) https://www.youtube.com/watch?v=EwI3E9Natcw

profile
개발 공부 기록

0개의 댓글