如何使Android TestRunner等到活动结束

时间:2013-11-06 12:16:42

标签: android testing wait activity-finish test-runner

我在一个测试用例的结尾处关闭一个Activity,因此它在下一个测试用例的开头是null:

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完成?

1 个答案:

答案 0 :(得分:0)

尝试为要运行的nextActivity创建new thread。调用thread.start()方法后,调用thread.join()您希望TestRunner被阻止的位置。