我正在使用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,以便您可以验证对特定参数的调用。

10-06 09:04