[java] void 메소드가 예외를 던지는 Mockito 테스트

void반환 유형 이있는 메소드가 있습니다. 또한 많은 예외를 throw 할 수 있으므로 발생하는 예외를 테스트하고 싶습니다. 같은 이유로 모든 시도가 실패했습니다.

Stubber 유형의 when (T) 메소드는 인수 (void)에 적용 할 수 없습니다.

특정 예외를 발생시키는 방법을 얻는 방법에 대한 아이디어가 있습니까?

doThrow(new Exception()).when(mockedObject.methodReturningVoid(...));



답변

괄호가 잘못 배치되었습니다. 당신은 사용해야합니다

doThrow(new Exception()).when(mockedObject).methodReturningVoid(...);
                                          ^

그리고 아닙니다

doThrow(new Exception()).when(mockedObject.methodReturningVoid(...));
                                                                   ^

이것은 설명서에 설명되어 있습니다


답변

Mockito의 새로운 BDD 스타일을 사용하는 방법에 대해 궁금한 경우 :

willThrow(new Exception()).given(mockedObject).methodReturningVoid(...));

그리고 나중에 참조하기 위해 예외를 throw 한 다음 아무것도하지 않아도됩니다.

willThrow(new Exception()).willNothing().given(mockedObject).methodReturningVoid(...));


답변