我现在有各种AndroidTestCases,它们使用Mockito和模块dexmaker-mockito。现在我正在尝试使用Robolectric添加robolectric plugin测试用例。我的一切都运行得很好,除了当我试图毫无争议地模拟方法时,我从Dexmaker那里得到了一个Dexmaker。删除dexmaker-mockito依赖并使用mockito版本1.9.0而不是1.9.5会导致错误消失,但导致所有AndroidTestCases失败。gradle中是否存在将dexmaker-mockito排除在dexmaker-mockito测试用例之外的问题?或者有人知道从android工作室运行android单元测试和频域单元测试的其他方法吗?
Error: java.lang.IllegalArgumentException at com.google.dexmaker.mockito.InvocationHandlerAdapter.invoke
更新
我尝试过gradle-android-test-plugin和robolectric-gradle-plugin,但是如果不将mockitio的版本更改为1.9.0并将dexmaker、dexmaker-mockito从我的依赖项中删除,就无法摆脱IllegalArguementException。
我尝试了指南,但无法让Android识别我的源目录,而不将它们添加到main或测试源代码集中,这会破坏我的构建,因为不是为那些gradle任务编译的,而且我也不希望编译它。
最后,我遵循了指南这里,这一次,当我从命令行运行测试时,错误消失了,但是在从android运行时,这个错误仍然存在,我觉得这很奇怪。同样,将mockitio的版本更改为1.9.0,并从我的Android中的依赖项中删除dexmaker,dexmaker-mockito删除了错误。现在,我会满足于不能从android运行单元测试,直到我找到一个更好的答案。
发布于 2014-09-23 10:22:38
如果我正确地理解了右旋机-mockito应该做什么,那么它就应该与运行在设备上的Android单元测试一起使用,所以它对您的Android测试用例很有好处。
运行在JVM上的Robolectric测试应该作为JUnit测试运行,而不是Android测试。他们不应该使用dexmaker,因为他们永远不会被部署到设备上,他们可以使用普通的Mockito库,范围设置为测试。
我认为您可能无法将这两者混合,您可能有两个保持您的robo测试与您的Android单元测试分开。
https://stackoverflow.com/questions/25987224
复制相似问题