这是一个示例代码
when(someObject.someMethod(any(AbstractClass.class)).thenReturn(mockvalue);
在上面的代码中,它没有识别参数any(AbstractClass.class),它调用的是real方法而不是返回mock值。
答案 0 :(得分:1)
我很抱歉,但你在那里走错了路。
any( SomeClass.class )
不执行您认为的操作。特别是 NOT 检查参数是否为SomeClass
,请参阅Javadoc:
任何类型的对象,不是给定类的必需对象。
提供类参数只是为了避免强制转换。
如果您查看Any类,您将看到原因:
public boolean matches(Object actual) {
return true;
}
因此,任何参数(顾名思义)都会被接受。在您的情况下,这意味着如果调用该特定someMethod
上的方法someObject
,它将返回mockvalue
,无论实际参数是什么。
这意味着您的问题完全在其他地方,例如......
没有代码就很难说。我会问一个新问题,但这次提供更多代码。