인프런 커뮤니티 질문&답변
체크 예외 문제점 - 코드 - CheckedAppTest
작성
·
349
0


controller .request를 호출하면, service.logic이 호출되고, service.logic 이 실행되면 service 클래스안에 logic 메소드가 호출이 됨. 호출이되면, repository.call exception과 networkClient.call exception 두개 모두 발생한다고 생각합니다. 그런데 왜 SQLException.class로 assetThrownBy 하면 테스트가 성공하고, ConnectException으로 테스트하면 실패하는지 모르겠습니다.
답변 1
0
안녕하세요, 철진 님! 공식 서포터즈 codesweaver 입니다.
controller.request() 를 실행하면 오류 2개가 발생합니다.
SQLException과 ConnectException인데요.
테스트에서는 이 둘 중 하나만 던져질 것이라고 단언(assert)하기 때문에 테스트를 통과할 수 없습니다.
그럼 Exception.class 로 했을 때는 왜 통과가 되었는가?하면
모든 예외는 Exception의 자식 객체이기 때문입니다. OOP 언어에는 다형성이라는 개념이 있는데,
이는 'B가 A를 상속받았다면, B는 B이고 또한 B는 A이다.' 라고 할 수 있습니다. 역으로 A이면 B이다는 성립하지 않습니다.
다형성에 대해 추가로 검색하여 보시면 도움이 되실거에요.,
감사합니다.





