0

我目前有各种AndroidTestCases,它们使用Mockito和模块dexmaker-mockito。我现在试图使用robolectric plugin添加Robolectric测试用例。 我有一切运行良好,除了当我尝试模拟方法没有争论时,我从Dexmaker得到IllegalArgumentException。删除dexmaker-mockito依赖关系,并使用mockito版本1.9.0而不是1.9.5导致错误消失,但导致我的所有AndroidTestCases失败。反正有gradledexmaker-mockito排除我的robolectric测试用例吗?或者有没有人知道任何其他方式来运行Android单元测试和android studio的robolectric单元测试?从Android Studio运行robolectric和android单元测试

Error: java.lang.IllegalArgumentException at com.google.dexmaker.mockito.InvocationHandlerAdapter.invoke

更新

我试图gradle-android-test-pluginrobolectric-gradle-plugin,但无法摆脱IllegalArguementException不改变的mockitio的版本1.9.0和删除dexmakerdexmaker-mockito从我的依赖关系。

我尝试了guide,但无法让Android Studio识别我的源代码目录,但没有将它们添加到主要或测试源代码集中,这会破坏我的构建,因为robolectric未针对这些gradle任务编译,我不希望它成为。

我最终按照指南here这一次,当我从命令行运行测试时,错误消失,但从我发现奇怪的android studio运行时持续。再次将mockitio的版本更改为1.9.0,并从我的Android应用程序的依赖项中删除dexmakerdexmaker-mockito删除了该错误。现在我会解决不能从android工作室运行单元测试,直到我找到更好的答案。

+1

哪里是代码??????? – 2014-09-23 05:36:53

+0

我的代码有点复杂,因为我会尝试写一个简单的应用程序并发布它。 – TravisW 2014-09-25 05:14:33

+0

您是否找到解决方案?我现在有完全相同的问题。 – Christoph 2015-02-15 20:51:53

回答

0

如果我正确理解了dexmaker-mockito应该做什么,它意味着与设备上运行的Android单元测试一起使用,所以它对您的Android测试用例非常有用。

Robolectric测试运行在JVM上,应该作为JUnit测试运行,而不是运行Android测试。他们不应该使用dexmaker-mockito,因为他们从来没有部署到设备上,他们可以使用正常的Mockito库,并设置范围集来测试。

我认为你可能无法混合使用这两者,你可能有两个让你的机器人测试与你的Android单元测试分开。

+0

所以唯一的解决方案是将测试用例放在单独的模块中?这会导致Robolectric插件失败。 – TravisW 2014-09-23 18:06:28

+0

当您尝试不同的解决方案时,如果您更新描述您尝试的内容以及遇到什么错误的问题,那么人们可以更容易地为您提供帮助。 – 2014-09-24 12:01:03

+0

对不起,我继续前进,并添加了我所尝试的并改变了问题,以更准确地反映我的问题。 – TravisW 2014-09-25 05:18:37

相关问题