Does creating an activity using the .withIntent()
not work in Robolectric 2? I\'m doing the following
activity = Robolectric.buildActivity(
I figured out my problem. I wasn't instantiating the Intent
properly. I was instantiating it with the no-arg constructor when i needed to give a Context
and the class of the Activity
it was being sent to
For newer versions of Robolectric use Robolectric.buildActivity(Class, Intent)
.
EDIT: It was fixed in version 2.2.
I tackled with the same issue. It was reported but no fix has been provided yet. For now, I manage to hack it using Activity's setter before calling onCreate(), taking advantage from the fact that its lifecycle has not yet started:
Intent intent = new Intent();
MainActivity mainActivity = Robolectric.buildActivity(MainActivity.class)
.create()
.get();
mainActivity.setIntent(intent);
mainActivity.onCreate(null);
This is a case where a fluent-style API kinds of leads you down the wrong path...
You want to:
activity = Robolectric.buildActivity(MyActivity.class)
.withIntent(intent)
.create()
.get();
so that the intent is provided to the builder before it calls onCreate().