如何使用Robolectric对Android中的GPS位置进行单元测试?

时间:2015-06-16 17:36:51

标签: java android unit-testing robolectric

我有一个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
}

1 个答案:

答案 0 :(得分:0)

Robolectric以不同方式创建应用程序。试试这个:

mainActivity = Robolectric.buildActivity(MainActivity.class).create()
            .start().resume().get();

NPE应该消失,该教程中的其余代码应该可以正常工作。请注意,Alan Evans实际上将几乎相同的片段放在您引用的帖子的评论部分中。