用Robolectric测试什么?

4

在我看来,我从根本上误解了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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章