Robotium:验证单击按钮时活动是否已完成并恢复"home"底层活动



我使用的是Android注释,我的活动中有以下代码:

@OptionsItem
void homeSelected() {
    finish();
}

显然,当用户单击ActionBar中的home按钮时,这段代码应该完成当前活动。但是我该如何测试这个代码呢?我希望能够以某种方式验证,在单击主页按钮后,当前活动已完成,上一个活动已恢复。这可能吗?或者至少我可以验证我的homeSelected方法是否在单击主页按钮后被调用?

我正在使用Robotium,我有以下测试方法:

@SmallTest
public void testGoBack() {
    solo.clickOnActionBarHomeButton();
    // ???? How do I verify the homeSelected method was actually called?
}

您可以使用waitForActivity(...)

waitForActivity(Class<? extends android.app.Activity> activityClass)

等待与指定类匹配的"活动"。

查看文档。

@SmallTest
public void testGoBack() {
    solo.clickOnActionBarHomeButton();
    solo.waitForActivity(com.example.UpActivity.class);
}

默认例程使用20秒的超时时间。

p.s.:或者,将调试日志添加到活动的onDestroy()方法中:

public class MyActivity extends Activity {
    ...
    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.d ("TAG", "Finishing MyActivity");
    }
} 

并在您的测试方法中等待此日志消息:

waitForLogMessage("Finishing MyActivity");

最新更新