Я пытаюсь протестировать функцию приложения с помощью Robotium. Одна из особенностей заключается в том, что когда моя начальная активность запускается из представления поверх стека активности, она должна очистить верхнюю часть стека и повторно использовать существующую активность, например («MainActivity»).
Поток:
Первый Экран -> Экран LoginActivity -> Экран регистрации -> Первый Экран
Решение достаточно простое:
Intent intent = new Intent(getBaseContext(), FirstScreen.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
Установив флаг Intent.FLAG_ACTIVITY_CLEAR_TOP возвращает FirstScreen обратно на вершину стека моего приложения.
Тест, который я пытаюсь написать, состоит в том, чтобы подтвердить, что при нажатии Аппаратной кнопки «Назад» приложение исчезает, а собственное приложение Home (Launcher) является текущей активностью. .
My Instrumentation TestCase:
@Smoke
public void testshouldBeOnLauncherHomeScreen() {
// Monitor the Home (Launcher) Activity being Launched
IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.MAIN");
filter.addCategory("android.intent.category.HOME");
ActivityMonitor monitor = getInstrumentation().addMonitor(filter, null, false);
// go back to the launcher home
robotium.goBack();
assertEquals(1, monitor.getHits());
}
Я бы предпочел утверждать, что активность приложения Launcher является текущей активностью. Любые идеи или предложения будут высоко оценены.