小编use*_*382的帖子

Android 单元测试 / Mockito:android.location.Location 未模拟

我正在尝试在 Android 上学习基本的 JUnit 和 Mockito 测试。我正在尝试为一个简单的类编写单元测试,该类处理代表需要位置信息的活动从定位服务中查找用户的位置。

我一直在尝试创建“伪造位置”来测试:

@Test
public void testLocationReceived() throws Exception {
    Location fakeLocation = new Location(LocationManager.NETWORK_PROVIDER);
    fakeLocation.setLongitude(100);
    fakeLocation.setLatitude(-80);
    ...  
}
Run Code Online (Sandbox Code Playgroud)

但我收到错误:

java.lang.RuntimeException: Method setLongitude in android.location.Location not mocked.
Run Code Online (Sandbox Code Playgroud)

我知道 Android 上的单元测试在 JVM 上运行,因此您无法访问任何需要操作系统/框架的内容,但这也是其中一种情况吗?

  • 如果是这样,您如何判断哪些类可以/不可以在 JVM 上使用?
  • 除了基于 JVM 的单元测试之外,我现在是否还需要仪器/设备测试来测试这一类?

junit android unit-testing mockito

5
推荐指数
1
解决办法
4629
查看次数

标签 统计

android ×1

junit ×1

mockito ×1

unit-testing ×1