Search code examples
javaexceptionmockingmockito

Mockito test a void method throws an exception


I have a method with a void return type. It can also throw a number of exceptions so I'd like to test those exceptions being thrown. All attempts have failed with the same reason:

The method when(T) in the type Stubber is not applicable for the arguments (void)

Any ideas how I can get the method to throw a specified exception?

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

Solution

  • The parentheses are poorly placed.

    You need to use:

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

    and NOT use:

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

    This is explained in the documentation