강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của cheerupkm8150
cheerupkm8150

câu hỏi đã được viết

Thêm Java, các cách khác nhau để kiểm tra ứng dụng của bạn

thenThrow() 안에는 runtime 익셉션만 선언가능한가요?

Viết

·

1.3K

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()).특정 서비스);

    }
testcontainersjavaArchUnitChaos-MonkeyJMetermockitoJUnit

Câu trả lời 1

1

whiteship님의 프로필 이미지
whiteship
Người chia sẻ kiến thức

when(특정_서비스).thenThrow(new sqlException());

저기서 호출하는 그 특정 서비스에서 해당 checked 예외를 던질 수 있다고 선업해 보세요.

void 특정_서비스 throws SqlException 이런식으로요.

Hình ảnh hồ sơ của cheerupkm8150
cheerupkm8150

câu hỏi đã được viết

Đặt câu hỏi