-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
thenThrow() 안에는 runtime 익셉션만 선언가능한가요?
22.09.05 16:49 작성 조회수 784
0
안녕하세요. 기선님
테스트 코드 작성은 처음이라 강의를 들으며 해보고 있는 수강생 입니다 !
다름이 아니라 throw 부분에 ioException이나 sqlException을 실행시키고 싶은데 에러엔
org.mockito.exceptions.base.MockitoException:
Checked exception is invalid for this method!
이렇게만 뜨더라구요 근데 runtime 익셉션은 정상적으로 실행되는 걸 보면서 thenthrow는 unchecked 익셉션만 가능한건지 궁금증이 생겼습니다.
혹시 ioException이나 sqlException 처럼 checked 익셉션을 실행하고 싶으면 어떻게 하면 좋을까요?
사정상 코드의 내용을 상세히 첨부할 수 없지만 대략적으로 올려봅니다
@DisplayName("3. 실패 : DB insert 오류")
public void 실패_DB_insert_오류() {
//given
//특정 객체 생성
when(특정 서비스).thenThrow(new sqlException());
//then - 실패 결과
assertThrows(sqlException.class, () -> {
log.info("!! DB insert 오류 !! ");
//when - 프로세스가 진행
});
// verify를 통해 해당 프로세스 최소 1번 호출 되었는지 확인
verify(kosService,atLeastOnce()).특정 서비스);
}
답변을 작성해보세요.
1
백기선
지식공유자2022.09.14
when(특정_서비스).thenThrow(new sqlException());
저기서 호출하는 그 특정 서비스에서 해당 checked 예외를 던질 수 있다고 선업해 보세요.
void 특정_서비스 throws SqlException 이런식으로요.
답변 1