android - Activity 生命周期单元测试

标签 android unit-testing

在 Activity 单元测试中,我如何模拟 Activity 生命周期事件。

我可以在现有 Activity 上调用仪器的 callActivityOn... 方法,但是如何触发 Activity 重新创建,以便 Activity 的 OnCreate 获取具有已保存状态的包

最佳答案

我发现这段代码会导致创建新的 Activity:

myActivity.finish();
setActivity(null);
myActivity = getActivity();

但这不会导致 onSaveInstanceState 被调用。因此,例如测试是否在 View 方向更改后正确创建了 Activity ,这样的测试应该这样做:

private mInstrumentation = getInstrumentation();
...
final Bundle outState = new Bundle();
mInstrumentation.callActivityOnSaveInstanceState(mActivity, outState);
mActivity.finish();
setActivity(null);
mActivity = getActivity();
runTestOnUiThread(new Thread() {
    @Override
    public void run() {
        mInstrumentation.callActivityOnRestoreInstanceState(mActivity, outState);
    }
});

关于android - Activity 生命周期单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9400751/

相关文章:

java - 有没有办法在Azure MobileServiceSyncTable中进行计数查询?

php - 从 Android 将阿拉伯文本发送到 MySQL

python - 如何在 PyDev 中运行单独的 Django 测试

unit-testing - 如何在Grails 2单元测试中获取Spring Security提供的currentUser

android - Firebase SDK 中的 Google Ads 归因

java - Android Studio : Can't resolve imports (android. 支持。*)

unit-testing - 如何在实习生测试中模拟依赖关系

angular - 检查是否在 Angular Jasmine 测试用例中调用内部方法

c# - 如何伪造 SharePoint 列表(我需要 IEnumerable<Microsoft.SharePoint.Client.ListItem>)?

android - 在Android应用程序中从amazon s3下载之前获取文件大小