인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

철진님의 프로필 이미지
철진

작성한 질문수

스프링 DB 1편 - 데이터 접근 핵심 원리

체크 예외 문제점 - 코드 - CheckedAppTest

작성

·

311

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이다는 성립하지 않습니다.

다형성에 대해 추가로 검색하여 보시면 도움이 되실거에요.,


감사합니다.

철진님의 프로필 이미지
철진

작성한 질문수

질문하기