3
我已經研究過幾個類似的問題,但還沒有設法成功測試過這個問題。測試最近啓動的活動是否已經開始
Android - testing if another activity has started
我想這一個,但對我來說,origactivity原來是空的,所以我用.baseIntent.getComponent(),而不是找出開始活動(我想這應該給我同樣的結果?)
我的JUnit測試代碼:
public class MainMenuTest extends
ActivityInstrumentationTestCase2<MainMenuActivity> {
public MainMenuTest() {
super("package.name", MainMenuActivity.class);
}
private MainMenuActivity mActivity;
private ActivityManager am;
public void setUp() throws Exception {
super.setUp();
mActivity = this.getActivity();
am = (ActivityManager) mActivity.getSystemService(Service.ACTIVITY_SERVICE);
Intent i = new Intent(mActivity, GameActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
mActivity.startActivity(i);
}
public void testNewGameButton() {
final ActivityManager am2 = am;
mActivity.runOnUiThread(new Runnable() {
public void run() {
List<ActivityManager.RecentTaskInfo> processes = am2.getRecentTasks(2, ActivityManager.RECENT_WITH_EXCLUDED);
ActivityManager.RecentTaskInfo recentTask = processes.get(0);
assertEquals(recentTask.baseIntent.getComponent().getClassName(), GameActivity.class.getName());
}
});
}
}
不幸的是,這將導致assertEquals(recentTask.baseIntent.getComponent().getClassName(),
斷言失敗。
這是爲什麼,有沒有更好的方法來測試呢?
正是我想要的。謝謝! – Datoraki