如何保持测试,以使用launchActivity从单个测试套件中的捆绑软件中测试Android活动的恢复,以及使用launchActivity进行的其他测试

问题描述 投票:0回答:1

我有一个适用于Android应用程序的测试套件,可以测试多种情况。对于大多数用户而言,使用AndroidX测试框架的launchActivity是有意义的。

在同一套件中,我还具有测试,用于测试从捆绑软件中恢复活动。这些测试要求在开发人员选项中启用“不保留活动”,因为只有这样,才可以直接进行设置,以便使用非空saveInstanceState调用onCreate。

但是,当在开发人员选项中启用Don't keep activities时,launchActivity失败,并带有以下堆栈跟踪的IllegalStateException

java.lang.IllegalStateException: "Don't keep activities" developer options must be disabled for ActivityScenario
at androidx.test.internal.util.Checks.checkState(Checks.java:96)
at androidx.test.core.app.ActivityScenario.launchInternal(ActivityScenario.java:218)
at androidx.test.core.app.ActivityScenario.launch(ActivityScenario.java:190)
[...]

我想知道为什么存在这种局限性,以及如何处理?从活动状态从实例状态恢复时,它可以防止测试方案。

即使将UiAutomator用于这些特定的测试用例,测试从实例状态恢复活动,由于该设置是系统设置,因此测试不能真正在同一设备/仿真器上一起运行。

或者,可以在测试之前和之后打开和关闭设置,但是这只能在根设备上运行,或者需要使用UiAutomator来翻转系统设置开关,这非常慢。]

我有一个适用于Android应用程序的测试套件,可以测试多种情况。对于大多数用户而言,使用AndroidX测试框架的launchActivity是有意义的。在同一个套件中,我还测试了...

android android-uiautomator androidx-test
1个回答
0
投票

事实证明,ActivityScenario's recreate涵盖了此特定情况:

© www.soinside.com 2019 - 2024. All rights reserved.