我正在对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运行,所以我不打算使用Intent
和startActivity
。我正在寻找像
MyActivity activity = new MyActivity(validContext);
答案 0 :(得分:2)
使用Robolectric.setupActivity()
开始您的活动。
private MyActivity mActivity;
mActivity = Robolectric.setupActivity(MyActivity.class);