Robotium:当点击“home”按钮时,验证活动是否已完成,底层的活动是否已恢复

时间:2014-09-22 13:13:18

标签: android testing tdd robotium

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

@OptionsItem
void homeSelected() {
    finish();
}
显然,当用户单击ActionBar中的主页按钮时,此代码应该完成当前活动。但是我该如何测试这段代码呢?我希望能够以某种方式验证在单击主页按钮后当前活动已完成,并恢复之前的活动。这可能吗?或者至少可以在点击主页按钮后验证我的homeSelected方法是否被调用?

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

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

1 个答案:

答案 0 :(得分:2)

您可以使用waitForActivity(...)

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

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

查看documentation

@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");