Mockito错误不适用于参数(void)

时间:2015-04-09 11:42:38

标签: java mocking mockito

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);

我知道有类似的问题已经被问到,但是如果有人可以为此解释一个解决方案或指出我正确的方向,我会非常感激

2 个答案:

答案 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.