robolectric 2 - 有意创造活动

Dav*_*vid 10 robolectric

使用.withIntent()Robolectric 2中的无效工作创建活动吗?我正在做以下事情

    activity = Robolectric.buildActivity(MyActivity.class)
                            .create()
                            .withIntent(intent)
                            .get();
Run Code Online (Sandbox Code Playgroud)

而我得到一个NullPointerException在执行以下操作时,onCreate()我的活动.

Bundle bundle = getIntent().getExtras();
Run Code Online (Sandbox Code Playgroud)

我可以在我的代码中进行空检查onCreate()并通过执行以下操作来设置意图,但是onCreate()当Robolectric在创建Activity实例时已经这样做时,设置意图并再次调用方法似乎是多余的.这似乎是一项不必要的工作.

    Robolectric.shadowOf(activity).setIntent(intent);
    activity.onCreate(null);
Run Code Online (Sandbox Code Playgroud)

And*_*nie 6

这种情况下,一种流畅的API类型会导致你走错路......

你想要:

activity = Robolectric.buildActivity(MyActivity.class)
                        .withIntent(intent)
                        .create()
                        .get();
Run Code Online (Sandbox Code Playgroud)

以便在调用onCreate()之前将构造提供给构建器.


Cor*_*han 6

对于较新版本的Robolectric使用Robolectric.buildActivity(Class, Intent).


Dav*_*vid 3

我找到了我的问题。我没有Intent正确实例化。当我需要给出 a 及其发送到的 Context类时,我使用无参数构造函数实例化它Activity