Mockito间谍不起作用

时间:2015-07-10 08:55:16

标签: testing mockito

我正试图通过Mockito测试我的android项目。

但似乎间谍不像我想的那样有用。 间谍对象不等于真实对象吗?

当我尝试调用spy对象的方法时,测试结果总是AbstractMethodError(如下所示)。

java.lang.AbstractMethodError: abstract method not implemented
at com.google.dexmaker.mockito.InvocationHandlerAdapter$ProxiedMethod.isAbstract(InvocationHandlerAdapter.java)
at org.mockito.internal.invocation.InvocationImpl.callRealMethod(InvocationImpl.java:109)
at org.mockito.internal.stubbing.answers.CallsRealMethods.answer(CallsRealMethods.java:41)
at org.mockito.internal.handler.MockHandlerImpl.handle(MockHandlerImpl.java:93)
at org.mockito.internal.handler.NullResultGuardian.handle(NullResultGuardian.java:29)
at org.mockito.internal.handler.InvocationNotifierHandler.handle(InvocationNotifierHandler.java:38)
at com.google.dexmaker.mockito.InvocationHandlerAdapter.invoke(InvocationHandlerAdapter.java:49)
at ArrayList_Proxy.add(ArrayList_Proxy.generated)

我的测试用例:

public void testGetAllCountryKeywords_WithSpy(){
    List<String> list = new ArrayList<>();
    List spy = spy(list);
    spy.add("hi");

}

以下是build.gradle中的依赖项。

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile 'junit:junit:4.12'
    androidTestCompile "com.google.dexmaker:dexmaker:1.+"
    androidTestCompile "com.google.dexmaker:dexmaker-mockito:1.+"
    androidTestCompile 'org.mockito:mockito-core:1.10.+'
    androidTestCompile 'com.android.support.test:runner:0.3'
}

有人可以给我一些建议吗?我真的不知道。谢谢!

1 个答案:

答案 0 :(得分:0)

您缺少通用类型,参考&#39;间谍&#39;代理无法知道其类型

  

public void testGetAllCountryKeywords_WithSpy(){       List list = new ArrayList&lt;&gt;();       列出间谍=间谍(列表);       spy.add(&#34;喜&#34);

     

}