我正在使用Mockito编写一些单元测试。我遇到了以下情况:
public interface A extends ABase { }
其中
ABase
是其中包含具体方法的接口。我在A的实例上使用Mockito.spy()
,我想验证在我编写的一段代码中调用了在foo()
中声明的方法ABase
。在上述代码中,将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
,以便您可以验证对特定参数的调用。