我有一个Android应用程序,在按下按钮时给出当前位置。我想对这个功能进行单元测试。我正在使用Robolectric。问题是,系统服务是在onCreate()方法中访问的,但不是在它之外。如果是这种情况,如何在不调用onCreate()方法的情况下访问设备gps坐标?
我尝试从我的testClass中调用onCreate(),但它给了我空指针异常。
我按照在线教程http://ckarthik17-tech.blogspot.ca/2013/04/android-robolectric-unit-testing.html在位置上执行单元测试,但它对我不起作用。
在本教程中,测试类具有以下代码段,这会将空指针异常提升给我。
@Before
public void setUp() {
mainActivity = new MainActivity();
mainActivity.onCreate(null); // this is giving me null
mainActivity.onCreate(new Bundle()); //I tired this too,still it gives me null
}
答案 0 :(得分:0)
Robolectric以不同方式创建应用程序。试试这个:
mainActivity = Robolectric.buildActivity(MainActivity.class).create()
.start().resume().get();
NPE应该消失,该教程中的其余代码应该可以正常工作。请注意,Alan Evans实际上将几乎相同的片段放在您引用的帖子的评论部分中。