【问题标题】:Is it possible to create a stub of android.os.Bundle for testing under JVM?是否可以创建 android.os.Bundle 的存根以在 JVM 下进行测试?
【发布时间】:2011-11-16 05:29:51
【问题描述】:

正如标题所说,如果可能的话,我想知道如何从Bundle 创建一个存根以在 JVM 上运行(所以不是 Dalvik)。由于它是android.os 包的一部分,可能与这种可能性有关。

我的观点是因为我想使用一个在 JVM 上运行的模拟框架来测试 Activity.onCreate() 方法。

我已经找到了这个link,但似乎他们使用了一个剥离的自定义 android.jar,因为它相当实验性且未经证实(但即使使用他们的 jar,我也无法重现,也许我需要休息一下)。

如果有其他模拟测试的替代方法,任何见解都将一如既往地受到赞赏。

谢谢。

【问题讨论】:

    标签: android unit-testing mocking stub


    【解决方案1】:

    我已经成功地在 java jvm 上为与 android.jar 类交互的类编写单元测试。我使用 Powermock 来模拟所有的 android 类(如 Bundle)。

    link 讨论了使用不会在 java jvm 上引发“存根”异常的 android jar 版本。我不需要使用不同版本的 android jar。使用 Powermock 我已经能够成功地模拟出我需要的任何东西。对我来说,这种单元测试技术不是实验性的。

    话虽如此 - 扩展活动、片段等的类的单元测试变得非常沉重。我觉得将尽可能多的逻辑转移到 pojo 类中是件好事,让你的 android 扩展类尽可能薄。然后,您可以决定是否值得隔离 junit 测试 android 扩展类。如果您愿意,当然可以做到。您还可以考虑使用类似AndroidRobotium 提供的集成测试框架来测试您的android 扩展类及其生命周期。

    【讨论】:

    • 我使用 Robolectric 和 Mockito 取得了一定的成功,但我们现在要采用一种新方法。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-26
    • 2015-05-04
    • 2016-05-15
    • 2017-09-27
    • 1970-01-01
    相关资源
    最近更新 更多