Mockito对我嘲笑的课程提出错误"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);
我知道有类似的问题已经被问到,但是如果有人可以为此解释一个解决方案或指出我正确的方向,我会非常感激
答案 0 :(得分:28)
解决方案:
Mockito.doReturn(value)
.when(mockObject)
.myMethod(Mockito.any(MyExecutionContext.class))
答案 1 :(得分:1)
很可能你模拟的方法的返回类型(在上面的例子中:mockObject.myMethod)是 VOID。
如果方法的返回类型是“void”,则改用此格式:
doThrow(new PersistenceException("Exception occured")).when(mockObject).myMethod(any());
// Note that we can never return a value when return type is void.