이시안 개발 블로그

JUnit5로 예외처리 테스트하기 본문

🌱Spring

JUnit5로 예외처리 테스트하기

ICAN 2021. 12. 21. 21:11

✨ 왜?

@Test(expected = IllegalStateException.class)

JUnit4에서는 @Test 어노테이션에 expected 속성으로 예외를 잡도록 처리할 수 있었습니다.
하지만 JUnit5에서는 Assertions에 새롭게 추가된 assertThrows()를 통해서 쉽게 테스트를 작성할 수 있게 되었습니다.

📃 과정

@Test
public void 중복_회원_예외() throws Exception {
    // given
    Member member1 = new Member();
    member1.setName("hello");

    Member member2 = new Member();
    member2.setName("hello");

    // when
    memberService.join(member1);

    // then
    assertThrows(IllegalStateException.class, () -> {
        memberService.join(member2);
    });
}

join() 메서드는 회원을 등록할 때 회원 이름이 중복된다면 IllegalStateException을 던지도록 작성되어 있습니다.
때문에 예외가 제대로 발생해야 제대로 작성한 테스트가 되는 데 Assertions.assertThrows() 메서드를 사용해서 쉽게 예외를 처리할 수 있습니다.

Assertions.assertThrows()

  • JUnit5에서 제공하는 내장 메서드
  • assertThrows(Class<T> expectedType, Executable executable)
    • 첫번째 인자에는 설정한 예외의 Class 타입, 두번째 인자에는 예외를 던질 메서드, 실행문이 들어갑니다.

☄️ 결과

결과

join() 메서드가 던진 IllegalStateException 예외를 제대로 받아서 마음이 편한 초록불이 들어온 모습입니다.

'🌱Spring' 카테고리의 다른 글

스프링부트 + MySQL 연동하기  (0) 2021.12.20
Comments