是否可以在JVM下创建用于测试的android.os.Bundle存根?

3
如题,我想知道如何从 Bundle 创建一个桩程序以在JVM上运行(而不是Dalvik)。由于它是 android.os 包的一部分,可能与这种不可能性有关。
我的目的是因为我想使用一个运行在JVM上的模拟框架来测试 Activity.onCreate() 方法。
我已经找到了这个链接,但它似乎使用了一个剥离了的自定义 android.jar ,因为它相当实验性和未经验证(即使我使用他们的jar也不能复现,也许我需要睡一会儿)。
如果有其他替代方法来进行模拟测试,任何见解都将一如既往地受到赞赏。
谢谢。
1个回答

2
我已经成功地为与android.jar类交互的类编写了java jvm的单元测试。我使用Powermock来模拟所有android类(如Bundle)。
这篇文章讲述了使用不会在java jvm上抛出“stub”异常的android jar版本。我没有需要使用不同版本的android jar。使用Powermock,我能够成功地模拟出我需要的任何东西。对我来说,这种单元测试技术并不是实验性的。
话虽如此,对于扩展activities、fragments等类的单元测试,会变得非常依赖模拟。我认为将尽可能多的逻辑移动到pojo类中是好的,使您的android扩展类尽可能薄。然后,您可以决定是否值得隔离junit测试android扩展类。如果您愿意,这当然可以做到。您还可以考虑使用AndroidRobotium提供的集成测试框架来测试您的android扩展类及其生命周期。

我之前使用Robolectric和Mockito有一定的成功,但现在我们正在采用新的方法。谢谢。 - kaneda

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接