是否可以在 Android 中使用 Espresso 进行端到端测试?

Hes*_*sam 2 android android-espresso android-instrumentation

在过去的一周里,我一直在寻找有关 Android 端到端测试的有用信息。虽然我找到了 UI Automator,但它并没有引起我的注意。

我正在开发一个应用程序,它的快乐路径包含 6 个活动。我想在主屏幕中创建我的 Booking 对象并将其移动到快乐路径以检查其状态。我想我可以用MockWebServer模拟服务器响应。我看到的所有样本都在测试一项活动。

所以我的问题是我能否在一次测试中测试所有这些活动(快乐路径)?如果是,是否有任何样本?

Cod*_*ice 6

简短的回答是肯定的。Espresso 非常适合测试单个应用程序中活动之间的交互。

UI Automator 旨在测试多个应用程序的交互。例如,如果您的应用程序使用相机,UI Automator 非常适合测试您的应用程序和相机之间的交互。不利的一面是,纯 UI Automator 测试对应用程序的内部工作一无所知。它可以根据视图层次结构搜索视图,但无需了解资源 ID 等信息。

另一方面,Espresso 可以根据视图的 ID 和应用中可用的其他属性查找视图。它可以单击一个按钮或另一个视图来启动另一个活动,然后与该活动进行交互。Espresso 只能使用您自己的应用程序中的视图。

Espresso 和 UI Automator 可以一起使用。您可以使用 UI Automator 将 Intent 启动到另一个应用程序(例如相机)并与之交互。当执行流程返回到您自己的应用程序时,您可以使用 Espresso 来检查结果。即使是在您自己的应用程序中进行测试,我也发现 UI Automator 中的 UiDevice 类可以方便地操作设备,例如导致方向改变。


小智 3

浓缩咖啡应该能够与多种活动配合使用。但是,当您说端到端测试时,您想将应用程序视为黑匣子并针对它运行独立的测试框架吗?

在这种情况下,浓缩咖啡似乎不是解决方案,尽管您确实可以用它来通过许多不同的活动来锻炼您的快乐之路。