首页 > 解决方案 > AndroidX 测试 - ActivityScenario API 立即销毁活动

问题描述

我一直在尝试将我的 Robolectic 测试用例转移到 Android X Test。我已按照文档进行操作,但无法通过 Activity Scenario Launch API 启动活动。

https://developer.android.com/reference/androidx/test/core/app/ActivityScenario

http://robolectric.org/androidx_test

protected void setupActivity() {
      ActivityScenario<VisitorExemptionActivity> scenario = ActivityScenario.launch(VisitorExemptionActivity.class);
        scenario.moveToState(Lifecycle.State.CREATED);// Activity destroyed before reaching to this point.
}

上面的代码没有调用除 onStart 之外的任何 android 生命周期,抛出以下异常并立即销毁活动。

java.lang.IllegalStateException:无法移动到状态“已创建”,因为 Activity 已被销毁

当我用 Robolectric 尝试相同的代码时。它工作正常并调用所有生命周期。oncreate , onstart 和 onResume 。

protected void setupActivity() {
activityController = Robolectric.buildActivity(VisitorExemptionActivity.class).setup();
activityController.get();
}

上面的代码调用了所有的生命周期。

请你能向我解释我做错了什么。

提前致谢。

标签: javaandroidandroid-studiotesting

解决方案


你能注释掉“scenario.moveToState(Lifecycle.State.CREATED);”吗?并尝试执行测试?

默认情况下,launch(...) 将使活动处于 RESUMED 状态,用户可以在该状态下与活动交互。


推荐阅读