[혼자서 해결하기][spring] Expecting code to raise a throwable. java.lang.AssertionError

soohee·2023년 2월 24일
0

note

목록 보기
2/3
post-thumbnail

문제

에러와 함께 하는 삶~ 좋다 조아..
오늘은 어떤 에러가 나를 괴롭힐까 싶었더니 이런에러였다.

test코드를 작성하다가 발견되었고, 에러를 읽어보니, 뭔가 에러가 안나서 문제가 되는 걸로 보였다.

에러가 안나서...? 문제..? 오잉??

뭔 말인가 싶어서 구글링하며 문제를 다시 파악해본 결과,

assertThatThrownBy()로 작성한 코드에, 에러가 안나서 생긴 문제였다.
실컷 에러가 날거야!! 이렇게 짜놓은 코드가 에러가 안나니, 당연히 프로그램도 당황해서 실행이 안될 수 밖에.. ㅋㅎㅋㅎㅋㅎㅋㅎ

해결

두 가지 해결방법이 있다.

  1. assertThatThrownBy() 대신, assertThatCode() 를 사용하자.
    assertThatThrownBy()는 예외가 던져지지 않으면 바로 실패하고, 에러메세지도 나타나지 않지만,
    assertThatCode()는 예외가 던져지지 않아도 실패하지 않고, 에러 메세지도 뜨기 때문에 고치기 쉽다.

  2. 에러를 뜨게 하자.
    실제 내 코드에서는 repository를 바로 호출하여, 없을 때 에러가 알아서 뜨겠거니 하고 실행했었다.

    이런 식으로, 에러 처리 한게 없는데.. optional로 해놔서 없으면 알아서 에러가 뜨겠거니 믿어부럿다..
    그래서 service단에서 repository를 호출해서, throws exception을 통해, 에러를 발생하도록 했다.

profile
🐻‍❄️

0개의 댓글