1
我正在嘗試使用robolectric 3.3.2來測試活動。 想要模擬和活動的成員初始化爲NPE中的直接調用結果。onCreate之前的模擬活動類成員
ActivityController<MyActivity> activityController =
Robolectric.buildActivity(MyActivity.class);
mTestActivity = activityController.get();
Mockito.when(mTestActivity.getCountry()).thenReturn("xxxx");
activityController.setup();
嘗試了上面的代碼,但是設置。()(在OnCreate)忽略 getCountry方法的模擬,並調用從活動的定義。
有沒有辦法做到這一點?
感謝尤金。我試過以上解決方案。但它無法找到字符串資源。 android.content.res.Resources $ NotFoundException:字符串資源ID#0x7f0d0037。當我不使用Stubactivity時,不會出現此異常。你在這裏看到錯誤嗎? – jsam
你是否在日誌消息中看到類似「明顯未找到」的東西? –
Manifest was place.But我的代碼是指另一個包的資源。我通過擴展RobolectricTesRunner並添加了自定義路徑來修復它。現在再次遇到另一個問題:「R包含最終字段,這些字段將由編譯器內聯,不能重新映射」,這與新版本的Robolectric(如3.2.1,3.3)一樣。等你知道嗎? – jsam