robolectric 2 - 用意图创建被测试的活动

vik*_*kas 9 android robolectric

我正在用Robolectric写单元测试.设置看起来像这样

@RunWith(RobolectricTestRunner.class)
public class MiAirlineActivityTest {
    @Before
    public void setUpFor() {
        Intent intent = new Intent(HOW_TO_PASS_CONTEXT_HERE, MiAirlineActivity.class);
        intent.putExtra(EMPLOYEEID_EXTRA, "username");

        miAirlineActivity = Robolectric.buildActivity(MiAirlineActivity.class)
                                .withIntent(intent).start().get();
    }
}
Run Code Online (Sandbox Code Playgroud)

如何在创建新intent时传递上下文.我按照这个问题的例子.

有@David说,

"...我需要提供一个Context和它被发送到的Activity的类"

我究竟能做到这一点?

注意:请不要将其标记为上述链接问题的副本.我问了一个新问题,因为我无法在那里添加评论.

Tra*_*909 8

试试这个

Intent intent = new Intent(Robolectric.getShadowApplication().getApplicationContext(),
                MiAirlineActivity.class);
Run Code Online (Sandbox Code Playgroud)


小智 3

miAirlineActivity = Robolectric.buildActivity(MiAirlineActivity.class).create().get();
Intent intent = new Intent();
intent.putExtra(EMPLOYEEID_EXTRA, "username");
miAirlineActivity.setIntent(intent);
miAirlineActivity.onCreate(new Bundle());
Run Code Online (Sandbox Code Playgroud)

这将以期望的意图启动您的活动