如何在Espresso测试中重新启动Android应用程序(/应用程序状态)?

5
我正在测试登录页面,特别是“自动登录”复选框,这样一旦用户登录,重新打开应用程序时就会自动登录(默认情况下,用户必须从头开始登录)。
我该如何模拟这种行为?重新启动应用程序是唯一的方法吗?我能否以某种方式重置应用程序到初始屏幕(就像被重新启动一样),但是用户数据/cookies 应该被保留?
2个回答

5

我的初始解决方案是通过 Espresso.pressBackUnconditionally() 来关闭应用程序(与 Espresso.pressBack() 类似,但当 Espresso 在测试对象应用程序或进程外导航时不会抛出异常),然后再启动活动:activityRule.launchActivity(null)

然而,最终我们提出了更为复杂的解决方案,在测试工具中重新启动活动:

with(activityRule) {
    finishActivity()
    launchActivity(null)
}

1

Activity测试规则已被弃用。 您可以使用以下Kotlin代码来完成此操作

activityScenarioRule.scenario.close() 
ActivityScenario.launch(YourActivity::class.java, null)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接