我试图测试调用接口方法时是否传递了正确的值。我得到以下错误:
org.mockito.exceptions.misusing.未完成验证异常:缺少的方法调用验证(mock)在这里:-
正确验证示例:验证(模拟)。doSomething()
此验证行上正在抛出错误:
Mockito。验证(回调)。onInitializeResult(“已初始化”)
我的接口类:
public interface InitCallback {
/**
* Returns whether or not the app was initialized. .
*/
void onInitializeResult(String result);
}
我的单元测试:
@Test
public void initializationTest(){
InitCallback callback = Mockito.spy(new InitCallback() {
@Override
public void onInitializeResult(String result) {
}
});
mExample.initialize(mContext, callback);
Mockito.verify(callback).onInitializeResult("initialized");
}
我还尝试将回调模拟替换为:
InitCallback callback = Mockito.mock(InitCallback.class);
Mockito.doNothing().when(callback).onInitializeResult(Mockito.anyString());
然而,我仍然得到相同的错误。接口只有一个方法,它不是最终的。有什么想法吗?
事实证明,mExample正在调用另一个未定义其方法的模拟实例。从另一个堆栈溢出post链接
如果您滥用它,Mockito会抛出异常,以便您知道您的测试是否编写正确。问题是Mockito在下次使用框架时进行验证(例如,下次验证、存根、调用mock等)。)。但是,即使在下一次测试中可能引发异常,异常消息也包含一个带有缺陷位置的可导航堆栈跟踪元素。因此,您可以单击并找到Mockito被滥用的地方。
因此,在问题中发布的案例中,异常是在
mExample.initialize(mContext, callback);
但在下次调用验证之前不会抛出。
问题内容: 我正在尝试嘲笑课堂。当我运行以下代码时,Mockito会引发异常: 堆栈跟踪是无限重复的以下几行: 我在这里做错了什么? 问题答案: PS!您还可以模拟对getSecurityManager()方法的静态方法调用。 模拟静态方法请参见maunal,网址为http://code.google.com/p/powermock/wiki/MockitoUsage 在类级别添加@Prepare
我有这样一个代码片段: 在运行这些测试时,我得到了: 你知道我该怎么阻止吗?我也许还有另一种方法来嘲弄这样一段代码:
问题内容: 我有这样的代码片段: 在运行此测试时,我得到: 你知道我该怎么预防吗?我也许还有另一种方法可以模拟这样的代码: 问题答案: 尝试将此注释添加到您的Test类: 为我工作。