【发布时间】:2016-04-26 16:35:58
【问题描述】:
我开始为我的 Android 项目创建单元测试。 我了解单元测试和仪器测试之间的区别。
在我的代码中,我使用 android SDK 的 android.location.Location 类。 此类用于表示地理位置,因此即使在我的应用程序的非常基本的类中也被广泛使用。
这会在尝试在 JVM 上进行单元测试时导致问题。 例如,使用 getBearing() 方法的方法无法在 JVM 上运行并抛出此异常:
java.lang.RuntimeException: 方法 setLatitude in android.location.Location 未被模拟。
有没有办法将该类仅添加到单元测试中,使其能够在 JVM 上运行? 还有其他\更智能的解决方案吗?
【问题讨论】:
-
您不能创建一个派生自 Location 的 mockLocation 类,并覆盖您的测试调用的任何方法吗?
-
找到了我认为是 Roboelectric 影子课程的答案。
标签: java android unit-testing