原因:不存在类型变量 T 的实例,因此 void 符合使用 mockito

2022-08-31 20:31:55

我想在运行void方法时引发异常

when(booking.validate(any())).thenThrow(BookingException.builder().build());

但是我有一个编译错误:

Required type: T
Provided: void
reason: no instance(s) of type variable(s) T exist so that void conforms to T

答案 1

对于 void 方法,我认为您需要使用语法。doThrow

因此,在您的情况下,它将是:

doThrow(BookingException.builder().build())
      .when(booking)
      .validate(any());

我希望这有帮助。


答案 2

我想出了正确的语法。

Service mockedService = new DefaultServie();
doNothing().when(mockedService).sendReportingLogs(null);

希望这能回答问题


推荐