Как заставить Android TestRunner ждать завершения активности

Я закрываю действие в конце тестового примера, чтобы оно было нулевым в начале следующего тестового примера:

public void test1() throws Exception {

    //activity is calling the RegisterActivity in onCreate
    activity = getActivity();

    // register next activity that need to be monitored.
    RegisterActivity nextActivity = (RegisterActivity) getInstrumentation()
        .waitForMonitorWithTimeout(activityMonitor, 5);
    // next activity is opened and captured.
    assertNotNull(nextActivity);
    if (nextActivity != null) {
        nextActivity.finish();
    }
}

public void test2() throws Exception {
    //nextActivity.finish() from the previous test has not yet finished

    //body of test2
    //...
    //...
}

Если я установлю спящий режим потока в test1, проблема будет решена:

    if (nextActivity != null) {
        nextActivity.finish();
        Thread.sleep(1500);
    }

Есть ли лучший способ для этого? Есть ли метод, который блокирует TestRunner до завершения nextActivity?


person viktor0710    schedule 06.11.2013    source источник


Ответы (1)


Попробуйте создать new thread для запуска nextActivity. После вызова метода thread.start() вызовите thread.join() там, где вы хотите заблокировать TestRunner.

person Aaron C    schedule 06.11.2013