初始化 Activity 进行单元测试
Initialize Activity For Unit Testing
我正在对 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
at android.view.ContextThemeWrapper.initializeTheme(ContextThemeWrapper.java:135)
经过研究,我认为这是因为上下文为空,无法正常获取资源。
我的问题是:我如何真正创建一个 Activity
对象来进行测试?我在 Robolectric 中 运行,所以我不想使用 Intent
和 startActivity
。我正在寻找类似
的内容
MyActivity activity = new MyActivity(validContext);
使用Robolectric.setupActivity()
开始你的activity。
private MyActivity mActivity;
mActivity = Robolectric.setupActivity(MyActivity.class);
我正在对 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 at android.view.ContextThemeWrapper.initializeTheme(ContextThemeWrapper.java:135)
经过研究,我认为这是因为上下文为空,无法正常获取资源。
我的问题是:我如何真正创建一个 Activity
对象来进行测试?我在 Robolectric 中 运行,所以我不想使用 Intent
和 startActivity
。我正在寻找类似
MyActivity activity = new MyActivity(validContext);
使用Robolectric.setupActivity()
开始你的activity。
private MyActivity mActivity;
mActivity = Robolectric.setupActivity(MyActivity.class);