【发布时间】:2016-01-11 23:14:23
【问题描述】:
我正在尝试使用 ActivityUnitTestCase 为活动方法编写单元测试。但是我在调用startActivity() 时总是遇到空指针异常。下面是我的代码。
我调试并发现它总是返回 null getInstrumentation().getTargetContext()。但我真的不明白这里发生了什么。
代码
public class ScoreBoardActivityTest extends ActivityUnitTestCase<ScoreBoardActivity> {
public ScoreBoardActivity activity;
public ScoreBoardActivityTest() {
super(ScoreBoardActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
startActivity(new Intent(getInstrumentation().getTargetContext(), ScoreBoardActivity.class), null, null);
activity = getActivity();
}
@Test
public void testActivityNotNull(){
Assert.assertNull(activity);
}
@Test
public void testBatsmanOneAddRunButtonClickUpdateTotalRuns(){
activity.onBatsmanOneAddRunClick(null);
Assert.assertEquals(activity.totalRuns, 1);
}
}
我在这里做错了什么?
我还有什么需要设置的吗?
【问题讨论】:
-
将
getInstrumentation().getTargetContext()更改为getInstrumentation().getTargetContext().getApplicationContext(); -
@piotrek1543 感谢您的评论。但它不再工作了..
标签: android unit-testing junit activityunittestcase