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

相關問題