【问题标题】:Using Android SDK classes in unit tests在单元测试中使用 Android SDK 类
【发布时间】: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


【解决方案1】:

好吧,我相信通过 Roboelectric 的影子课程可以找到答案!

【讨论】:

    猜你喜欢
    • 2013-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 2020-07-28
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多