我正在使用 Mockito 编写一些单元测试。我遇到了以下情况:
public interface A extends ABase { }
其中ABase
是一个包含具体方法的接口(interface)。我在 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
是一个接口(interface),而接口(interface)不能扩展类:
您正在将 A
传递给 verify
。这甚至不应该编译。尝试使用 bar
代替。 Mockito 期望将模拟或 spy 传递给 verify
,以便您可以验证对特定参数的调用。
关于java - 使用 Mockito 监视对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37820011/