我有一個Java庫,它使用Android API中的一些東西。我想用Mockito爲這個庫編寫單元測試。Android:使用Robolectric和Mockito單元測試Android應用程序
有沒有一種方法可以讓我去呢?
的Mockito不會在Dalvik虛擬機發揮不錯,看到這個帖子:Using Mockito with Android virtual machine
UPDATE:
由於這個職位,我已經發現Robolectric,我已經有工作的機會走出Pivotal實驗室併爲這個圖書館做出一些小貢獻。我會建議在Android測試框架/ mockito上使用它。此外,您可以自由使用Robolectric和Mockito,但Robolectric中的陰影對象使Mockito在大多數使用情況下不再需要。
,試圖單元測試Android的問題是,你建立在Android圖書館的每一個方法存根要麼拋出一個異常存根,或返回null。如果你想測試你的應用程序並且想要任何Android行爲,那麼你運氣不好,除非你使用Robolectric在類加載時重寫字節碼並注入模擬行爲的陰影對象。
更新2:
它已經有一段時間,事情發生了變化。 Robolectric中的許多Shadow類已經被真正的Android類取代。現在使用真正的Android Jar,Robolectric僅爲更小的一組內容加載Shadow類。這是使用Robolectric進行Android測試的更多原因。
我使用Mockito的Spy構造與Robolectric提供的構建器結合使用。這樣我就可以在需要時對android組件進行部分模擬,例如FooActivity foo = spy(Robolectric.buildActivity(FooActivity.class).get()); doReturn(mock).when(foo).getSomething(); – Alix