使用Mockito投射后对物体进行间谍活动

时间:2016-06-14 18:55:47

标签: java object casting mockito spy

我正在使用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

有关做什么的任何建议?谢谢!

编辑:我原来的问题中有一些错误。我道歉,现在应该修复。

1 个答案:

答案 0 :(得分:0)

除了ABase不能成为类之外,因为A是一个接口而接口不能扩展类:

您将A传递给verify。这甚至不应该编译。请尝试使用bar。 Mockito希望将模拟或间谍传递给verify,以便您可以验证特定参数的调用。