Mockito 错误不适用于参数(无效)

Mockito Error Is Not Applicable for the Arguments (void)

Mockito 为 class 抛出错误 "The method when(T) in the type Stubber is not applicable for the arguments (void)" 我在嘲笑,不知道为什么。

有问题的代码是:

Mockito.when(mockObject.myMethod(Mockito.any(MyExecutionContext.class))).thenReturn(value);

我知道有人问过类似的问题,但如果有人可以为此解释解决方案或指出正确的方向,我将不胜感激

解决方案:

Mockito.doReturn(value)
       .when(mockObject)
       .myMethod(Mockito.any(MyExecutionContext‌​.class))

您正在模拟的方法的 return 类型(在上面的示例中:mockObject.myMethod)可能是 VOID。

如果方法的 return 类型是 'void' 则使用此格式:

doThrow(new PersistenceException("Exception occured")).when(mockObject).myMethod(any());

// Note that we can never return a value when return type is void.