java, junit 예외 테스트 (assertJ)

예외처리

  • 테스트 코드 중 발생하는 예외에 대해서도 테스트를 할 수 있다. 이때 assertJ의 assertThatThrownBy를 사용한다.
  • 람다를 사용하여 예외가 발생할 것으로 기대하는 코드를 작성한다.
  • isInstanceOf로 예외가 발생할 타입을 작성한다.
  • cause, message 등 스트림을 활용하여 구체적으로 평가할 수 있다.
import static org.assertj.core.api.Assertions.assertThatThrownBy;

@Test
void 예외_연습(){
    assertThatThrownBy(() -> {throw new RuntimeException("실패!", new Exception("예제 실패!"));})
                .isInstanceOf(RuntimeException.class)
                .hasMessage("실패!")
                .hasCause(new Exception("예제 실패!"));
}