初始化单元测试活动

时间:2016-06-02 23:17:27

标签: android unit-testing robolectric

我正在对Activity进行单元测试。

private MyActivity _controller;

@Before
public void setUp() throws Exception
{
    ShadowLog.stream = System.out;

    _controller = Mockito.spy(new MyActivity());
}

然而,当我去测试时:

@Test
public void testInitRoot() throws Exception
{
    _controller.initRoot();
}

我崩溃了:

  

显示java.lang.NullPointerException       在android.view.ContextThemeWrapper.initializeTheme(ContextThemeWrapper.java:135)

经过研究,我认为这是因为上下文为空,无法正确获取资源。

我的问题是:我如何实际创建Activity对象仅用于测试?我在Robolectric运行,所以我不打算使用IntentstartActivity。我正在寻找像

这样的东西
MyActivity activity = new MyActivity(validContext);

1 个答案:

答案 0 :(得分:2)

使用Robolectric.setupActivity()开始您的活动。

private MyActivity mActivity;
mActivity = Robolectric.setupActivity(MyActivity.class);