It seems to me that robotium was designed in a way to test 1 Activity at a time instead of the whole application.

So my question is how do I test an activity that expects an extra to be passed to it? by extra I mean intent.putExtra("Something", object);

有帮助吗?

解决方案

The method setActivityIntent(Intent) should be what you are looking for. I used this method to provide a custom Intent to my Activity's TestCase. Just use it after you call super in your constructor.

Intent i = new Intent();
i.putExtra("myExtra", "anyValue");
setActivityIntent(i);

You don't have to do it in the constructor i think, but you need to make sure that you call it before you call getActivity() for the first time. getActivity will use your Intent to create the Activity.

其他提示

You could override getActivity() instead.

@Override
public NewActivity getActivity() {
    Intent intent = new Intent();
    intent.putExtra("exampleExtra", "some data");
    setActivityIntent(intent);
    return super.getActivity();
}

See Testing for Android with Robotium for more details.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top