我正在使用Android注释,我的活动中有以下代码:
@OptionsItem
void homeSelected() {
finish();
}
显然,当用户单击ActionBar中的主页按钮时,此代码应该完成当前活动。但是我该如何测试这段代码呢?我希望能够以某种方式验证在单击主页按钮后当前活动已完成,并恢复之前的活动。这可能吗?或者至少可以在点击主页按钮后验证我的homeSelected
方法是否被调用?
我正在使用Robotium,我有以下测试方法:
@SmallTest
public void testGoBack() {
solo.clickOnActionBarHomeButton();
// ???? How do I verify the homeSelected method was actually called?
}
答案 0 :(得分:2)
您可以使用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");