我正在使用Mockito编写一些单元测试。我遇到了以下情况:
public interface A extends ABase { }
其中ABase
是一个包含具体方法的接口。我在 A 的实例上使用 Mockito.spy()
,我想验证在 ABase
中声明foo()
的方法是否在我正在编写的代码中调用。在所述代码中,A
被强制转换为ABase
并调用foo()
。但是,我在尝试验证测试方法中调用foo()
的行上收到一个构建错误(未找到方法),如下所示:
A bar = spy(new A());
//... (function I'm testing is called, A is cast to ABase and foo() called)
verify(bar, times(1)).foo(); //problem line, foo not found
关于该怎么做的任何建议?谢谢!
编辑:我最初的问题中有一些错误。抱歉,现在应该修复了。
除了ABase
不能是一个类之外,因为A
是一个接口,接口不能扩展类:
你把A
传给verify
.这甚至不应该编译。请尝试改用bar
。Mockito希望将模拟或间谍传递给verify
以便您可以验证对特定参数的调用。