如何使用 Robolectric 对 android 中的 GPS 位置进行单元测试?
How to unit test the GPS location in android using Robolectric?
我有一个 android 应用程序,可以在点击按钮时提供当前位置。我想对这个功能进行单元测试。我正在使用 Robolectric 。问题是,系统服务是在 onCreate() 方法中访问的,而不是在它之外。如果是这样,我如何在不调用 onCreate() 方法的情况下访问设备 gps 坐标?
我尝试从我的 testClass 调用 onCreate(),但它给了我空指针异常。
我正在按照在线教程 http://ckarthik17-tech.blogspot.ca/2013/04/android-robolectric-unit-testing.html 进行现场单元测试,但它对我不起作用。
在教程中,测试class有以下代码,它引发了我的空指针异常。
@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
}
Robolectric 以不同方式创建应用程序。试试这个:
mainActivity = Robolectric.buildActivity(MainActivity.class).create()
.start().resume().get();
NPE 应该消失,该教程中的其余代码应该可以正常工作。请注意,Alan Evans 实际上在您引用的 post 的评论部分中放置了几乎相同的片段。
我有一个 android 应用程序,可以在点击按钮时提供当前位置。我想对这个功能进行单元测试。我正在使用 Robolectric 。问题是,系统服务是在 onCreate() 方法中访问的,而不是在它之外。如果是这样,我如何在不调用 onCreate() 方法的情况下访问设备 gps 坐标?
我尝试从我的 testClass 调用 onCreate(),但它给了我空指针异常。
我正在按照在线教程 http://ckarthik17-tech.blogspot.ca/2013/04/android-robolectric-unit-testing.html 进行现场单元测试,但它对我不起作用。
在教程中,测试class有以下代码,它引发了我的空指针异常。
@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
}
Robolectric 以不同方式创建应用程序。试试这个:
mainActivity = Robolectric.buildActivity(MainActivity.class).create()
.start().resume().get();
NPE 应该消失,该教程中的其余代码应该可以正常工作。请注意,Alan Evans 实际上在您引用的 post 的评论部分中放置了几乎相同的片段。