用robolectric编写Android验收测试:怎么办呢?

时间:2014-10-02 04:03:11

标签: android robolectric

Android验收测试可以使用Robolectric编写吗?它似乎只被归类为单元测试框架。

为什么不能将其归类为接受或"端到端"测试框架? (可以为此目的进行调整吗?)

1 个答案:

答案 0 :(得分:11)

我认为这可能有点主观,但我觉得它有问题,所以这就是我的看法。

这是一个e2e测试框架吗?

它不能是#end; end-to-end"因为应用程序实际上并不在设备上运行,所以依赖关系可能被模拟,网络通常被模拟,测试不能模拟用户如何使用应用程序。生命周期由您在测试中进行模拟和控制。它甚至不能在dalvik-VM上运行,并且dalvik和JVM之间存在差异(这里是一个简单但相关的示例:British Summer Time - BST not recognised by SimpleDateFormat timezone

对我来说,端到端测试只能通过已部署的应用程序,使用网络,连接到所需的服务器,获取信息,在屏幕上正确显示以及测试验证可能的内容来实现。在屏幕上看到。同样,这可能是主观的,但这对我来说意味着什么。

是否可以用它来编写验收测试?

这取决于你对验收测试的要求,因为我看到人们以不同的方式使用这个术语,但我会说答案肯定是肯定的。我们使用robolectric来测试我们的大多数业务逻辑,因为我们发现UI测试不可靠。

您可以使用正确的数据实例化UI元素,与UI元素交互,检查它们在屏幕上显示的内容。我想说这涵盖了很多方面。

也就是说,有时候这些测试很难编写,而且我们在编写代码时遇到了很多不同的问题(模型 - 视图 - 演示者最常被建议) 对我们来说,关键是要有漂亮的" dumb"观看并让演示者确定将在屏幕上显示的内容。然后你用robolectric测试对这个演示者进行了大量测试,你绝对可以编写类型测试#34;鉴于这一系列输入,我希望在屏幕上看到这些输出"。测试视图进一步增加了价值,因为它只是演示者为其提供服务的shell。

我认为描述如何将MVP应用于您的项目超出了SO答案的范围,但我希望这会有所帮助。