개념 정리/Spring

[Spring] JUnit5에서 예외테스트 하기

쇼티드 2023. 7. 29. 02:19
728x90
반응형

스프링 공부를 하던 중 예외테스트를 하는 법을 보았다.

하지만 직접 코드를 처보니 expected 자체가 존재하지 않았다.

알고 보니 아래 방식은 JUnit5에서 예외를 테스트 하는 법이다.

@Test(expected = IllegalStateException.class)
 public void ExceptionTest() throws Exception {
 	//code
    fail("IllegalStateException 예외 발생해야 한다");
 }

위 메소드에서 IllegalStateException이 발생한다고 예측한다는 뜻이다.

만약 발생하지 않는다면 fail안에 있는 메시지가 출력된다.

 

그럼 JUnit5에서는 어떻게 할까?

@Test
    public void ExceptionTest() throws Exception {
        assertThrows(IllegalStateException.class, () -> {
           testmethod(int para1, String para2);
        }, "IllegalStateException 예외가 발생해야한다.");
    }

람다 표현식과 assertThrows를 통해 testmethod에서 IllegalStateException예외가 발생한다고 예측한다.

만약 발생하지 않는다면 메시지가 출력된다.

 

람다 표현식에 대해 아직 제대로 몰라 어떤 방식으로 작동되는지는 확실하게 몰라 좀 더 공부해야겠다.

728x90
반응형