gpt4 book ai didi

Android 单元测试/Mockito : android. location.Location not mocked

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:15:24 24 4
gpt4 key购买 nike

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

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

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

但是我得到了错误:

java.lang.RuntimeException: Method setLongitude in android.location.Location not mocked.

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

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

最佳答案

您应该在 build.gradle (app) 中添加以下内容:

testOptions {
unitTests.returnDefaultValues = true
}

更多详情:http://tools.android.com/tech-docs/unit-testing-support#TOC-Method-...-not-mocked.-

关于Android 单元测试/Mockito : android. location.Location not mocked,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36832001/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com