Android - тестирование, если другое действие началось

Я пытаюсь протестировать следующий сценарий, введите букву в текстовом представлении автозаполнения, прокрутите вниз и выберите один из вариантов, затем нажмите кнопку. Нажатие кнопки запускает новое действие. Я хочу проверить, началась новая деятельность или нет. Это метод испытаний.

public void testSpinnerUI() {

    mActivity.runOnUiThread(new Runnable() {
        public void run() {

            mFromLocation.requestFocusFromTouch(); // use reqestFocusFromTouch() and not requestFocus()
        }
    });
    //set a busstop that has W in it, and scroll to the 4th position of the list - In this case Welcome
    this.sendKeys(KeyEvent.KEYCODE_W);
    try {
        Thread.sleep(2000); //wait for 2 seconds so that the autocomplete loads
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    for (int i = 1; i <= 4; i++) {
      this.sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
    }

    this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);

    assertEquals("Welcome", mFromLocation.getText().toString());

    //hit down arrow twice and centre button

    this.sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
    this.sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);

    this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);

    assertEquals(com.myApp.RouteListActivity.class, getActivity());

}

Тест завершается с ошибкой в ​​последнем assertEquals(com.myApp.RouteListActivity.class, getActivity()). Подскажите, пожалуйста, как мне проверить, запущено ли новое действие или нет?

1 ответ

Решение

Вам нужно будет использовать ActivityManager как удобно показано здесь: https://stackru.com/questions/3908029/android-get-icons-of-running-activities

Краткое резюме:

ActivityManager am = (ActivityManager) getSystemService(Service.ACTIVITY_SERVICE);
List<ActivityManager.RecentTaskInfo> processes = am.getRecentTasks(5);

получает список всех запущенных процессов (вам понадобится разрешение GET_TASKS). Вы можете искать в этом списке свою активность: одна из этих задач должна иметь origActivity свойство с тем же именем, что и ваша активность.

Другие вопросы по тегам