2

如何使用 Robotium 来验证我的 Activity 是否正确处理onPause()onDestroy()onResume()类似调用?

在我的 Robotium 测试中,我可以调用类似的东西

solo.getCurrentActivity().onKeyDown(0, null);

但是我怎样才能模拟一个被破坏和重新创建的活动呢?我没有看到任何

solo.getCurrentActivity().onPause()   

或者

solo.getCurrentActivity().onDestroy()

我可以使用的方法?这不是 Robotium 的设计初衷吗?

4

2 回答 2

2

Instumentation使用可以访问然后使用Instrumentation#callActivityOnPause()Instrumentation#callActivityOnDestroy()的测试用例基类。

于 2011-10-20T16:28:42.667 回答
1

这将破坏您的活动并创建一个新活动:

    getInstrumentation().runOnMainSync(new Runnable() {
        @Override
        public void run() {
            activity.recreate();
        }
    });
    setActivity(null);
    activity = getActivity();

由于调用了“activity.recreate()”,这仅适用于 API 11 及更高版本。如果您不关心在此测试中保存/恢复实例状态,您可以改为调用“activity.finish()”,它适用于所有版本。

于 2014-01-14T11:47:07.817 回答