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



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

我的观点是由于我想使用在JVM上运行的mock框架来测试Activity.onCreate()方法。

我已经找到了这个链接,但似乎他们使用了一个剥离的自定义android.jar,因为它是实验性的和未经证实的(然而我甚至不能用他们的jar复制,也许我需要一些睡眠)。

如果有另一种替代模拟测试,任何见解将一如既往地受到赞赏。

谢谢。

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

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

话虽如此——扩展活动、片段等的类的单元测试变得非常繁重。我觉得将尽可能多的逻辑移到pojo类中是很好的,使您的android扩展类尽可能精简。然后你可以决定是否值得对android扩展类进行独立测试。如果你愿意,这当然可以做到。你也可以考虑使用Android或Robotium提供的集成测试框架来测试Android扩展类及其生命周期。

最新更新