在我看来,我从根本上误解了Robolectric的目的。我已经与它抗争了一个星期,到目前为止,获得新的错误消息被认为正在取得进展。我能够测试一些基本内容,例如活动中的静态视图,但是当一些更复杂的事情开始起作用时,事情就会崩溃。我必须扩展Robolectric,以使用某些参数,Appcompat操作栏和许多其他东西来支持3方库,这些东西非常耗时,而且在任何地方都没有真正记载,并且事情以相当快的速度发展。我开始认为我以错误的方式使用它,并且根本不应该按照我想要的去做。
通用的应用程序逻辑非常简单,因此不需要太多的单元测试,最复杂的事情是在UI和远程API调用中。难道Robolectric只是因为可以在JVM上运行并支持一些Android类而使对Android的单元测试不如对JUnit那样痛苦吗?也许像Espresso这样的黑盒子行为测试框架会更适合我的需求?但是我们使用了continuos集成,Robolectric很好且易于设置以在CI服务器上运行测试,我想保持这种状态。
您将Robolectric用于什么用途?许多博客文章将其推荐用于“活动生命周期测试”,但是由于我在Android世界中还很陌生,所以我不太了解它的用途,尤其是因为我正在测试的应用程序仅是纵向模式。有人可以概述一下Robolectric的用途,以及如何做(最好是带有代码示例),并解释为什么以及这些测试很重要吗?
我们将其用于:
我们不将其用于(并且发现很难将其用于):
如果您正在寻找后者,Espresso / Robotium可能更适合您的需求。而且,您绝对可以将它们作为CI管道的一部分来运行,但是您需要花费一些时间进行设置,或者与Appurify之类的产品集成。
如果您发现编写测试非常困难,那么与使用robolectric相比,应用的架构方式可能要做的更多。也可以在这里查看我的答案,它可能会对您有所帮助:用robolectric编写Android验收测试:如何完成?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句