【问题标题】:AndroidX Test - ActivityScenario API Destroy the activity starightawayAndroidX 测试 - ActivityScenario API 立即销毁活动
【发布时间】:2020-05-16 09:33:49
【问题描述】:

我一直在尝试将我的 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生命周期,抛出下面的异常并直接销毁activity。

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

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

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

以上代码调用所有生命周期。

请你解释一下我做错了什么。

提前致谢。

【问题讨论】:

    标签: java android android-studio testing


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-13
      • 1970-01-01
      • 2012-01-14
      相关资源
      最近更新 更多