inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

더 자바, 애플리케이션을 테스트하는 다양한 방법

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

1349

cheerup_km

작성한 질문수 1

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

    }

testcontainers java ArchUnit Chaos-Monkey JMeter mockito JUnit

답변 1

1

백기선

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

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

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

테스트 반복하기 관련 질문입니다

0

105

1

Testcontainers ddl-auto 동작 시점

0

221

2

testcontainers DB 공유 이슈

0

239

2

질문있습니다.

0

334

3

동시성 테스트는 어떻게 작성해야하는지 궁금합니다.

2

1235

0

안녕하세요, 테스트의 displayName 관련 질문이 있습니다!

0

469

0

intellij 테스트 실행시 engine 이 나오게 하는 방법이 궁금합니다.

0

412

0

안녕하세요 @BeforeAll관련해서 질문이 있습니다.

0

391

1

Test 중단 방법(?)

1

428

1

junit 프로퍼티

1

412

1

강의 섹션별 Git Code

1

366

1

Gradle 프로젝트

0

359

1

강의 문서

0

398

1

if나 case를 통한 분기와 Assumptions의 차이점 문의

1

380

1

Study .setOwnerId( id ) 로 예제를 구성하신 이유가, 특정한 시나리오를 가정하기 때문인가요?

0

319

1

Mock에 Stubbing 중 발생하는 에러

0

3988

1

제 블로그에 공부 내용을 정리해도 될까요?

1

382

1

@Order와 @Order가 없는 순서가 있는 케이스

0

440

1

enum은 또 "이늄"인가요?

-5

1711

2

"assume" 발음이 "어줌"인가요?

-7

1624

4

검색을 해도 해결이 안되어 질문드립니다

0

2214

1

test 환경의 다른 컨테이너(Mock 어플리케이션)

0

381

2

중복 저장

0

301

1

Mapped port can only be obtained after the container is started

1

503

1