인프런 커뮤니티 질문&답변

최윤정님의 프로필 이미지

작성한 질문수

스프링 기반 REST API 개발

예외 테스트

expectedException 질문

작성

·

293

0

안녕하세요!

2시간동안 계속 뭐가 문제인지 강의를 돌려보고 돌려보고 했는데 왜 깨지는지 못찾겠어서 질문 드립니다. ㅠㅠ..

findByUserFail 테스트에서 깨집니다 뭐가 잘못 된 건가요??

혹시 몰라서 깃허브에도 코드를 올려두었습니다. 

https://github.com/backtony/apistudy

답변 3

0

조금 더 확인해보니, Junit5에서 테스트를 수행할 때는 아래와 같이 assertThrows 메서드를 사용하여 리턴되는 값을 Exception 인스턴스로 받은 후 assertThat 메서드를 이용하여 예외메시지 확인을 해주시면 될 것 같네요.

도움이 될 수 있을것 같아 공유해드립니다.

@Test
public void findByUsernameFail() {
    String email = "random@email.com";

    Exception exception = assertThrows(UsernameNotFoundException.class, () -> {
        accountService.loadUserByUsername(email);
    });

    assertThat(exception.getMessage()).contains(email);
}

0

최윤정님의 프로필 이미지
최윤정
질문자

감사합니다

0

백기선님의 프로필 이미지
백기선
지식공유자

작성하신 테스트 코드가 JUnit 5랑 Junit 4가 섞여 있네요. 제가 강의를 만들 때 Junit 4를 사용해서 만들었으니, 스프링 부트 버전을 낮추시거나 Junit 4를 사용해서 코딩해 주세요. 참고로 org.junit.jupiter 패키지를 쓰시면 Junit 5를 쓰시는겁니다.