2012-06-22 52 views
0

我使用Robotium編寫Android應用程序的測試用例。我的一個測試用例會打開一個文件(例如圖像),導致另一個應用程序打開另一個活動來顯示圖像。Robotium:回到測試中的活動

到目前爲止,一切都很好。然而,之後,我想回到我的測試活動中,因爲我想測試更多的功能。

我該如何實現這一目標?

既不

solo.sendKey(android.view.KeyEvent.KEYCODE_BACK); 

也不

solo.goBack(); 

也不

solo.getCurrentActivity().onBackPressed() 

作品因爲顯示圖像的活動屬於另一個應用程序,因此,以另一種方法。

還有什麼我可以試試嗎?

+1

不,它不可能,除非您在其他應用程序上擁有INJECT_EVENT權限,並且應用程序使用您的密鑰庫進行簽名,否則不可能。 – user370305

回答

4

你正在做驗收測試是的,這是爲了看到你的系統的用戶界面工作。

您不需要測試圖像是否打開(因爲這超出了您的應用範圍)。

然而它會被建議有單獨的單元測試,聲稱您調用正確的意圖(或任何代碼片段)來打開此圖像。

這樣你就可以將代碼覆蓋在測試和非測試其他人的代碼的問題上。

+1

實際上,我所做的是將單元測試用作性能測量的工作負載。因此,我確實想出於某種原因打開圖像。我只想知道,是否有可能使用robotium回到我的測試活動中。 –

+1

@ClaasWilke不,它不是 – Blundell

1

我建議你重新啓動目標活動達到初始狀態:

..... mSolo.finishOpenedActivities(); setActivity(null); mSolo = new Solo(mInstrumentation,getActivity()); ....

0

如果你能夠執行adb命令你知道哪些應用程序是由這個意向開始,你可以這樣做:

adb shell am force-stop <package-of-started-app> 

然後你回到以前的活動。

注意:如果存在多個可能的應用程序並顯示應用程序選擇對話框,則這不起作用。在這種情況下,您必須手動設置此意圖的默認應用程序。

1

對於我來說,這樣做的工作:

mSolo.goBackToActivity("MainActivity"); 

在我來說,我在瀏覽器中打開一個URL,然後我在測試回到活動。唯一的缺點(迄今爲止)是其他應用程序仍然在後臺,但可能也有一個解決方案。

我想這個方法已被添加到這個問題後已被問到。