在过去的一周里,我一直在寻找有关 Android 端到端测试的有用信息。虽然我找到了 UI Automator,但它并没有引起我的注意。
我正在开发一个应用程序,它的快乐路径包含 6 个活动。我想在主屏幕中创建我的 Booking 对象并将其移动到快乐的路径以检查其状态。我想我可以用MockWebServer模拟服务器响应。我看到的所有样本都在一次测试一项活动。
所以我的问题是我能够在一次测试中测试所有这些活动(快乐路径)吗?如果是,是否有任何样本?
在过去的一周里,我一直在寻找有关 Android 端到端测试的有用信息。虽然我找到了 UI Automator,但它并没有引起我的注意。
我正在开发一个应用程序,它的快乐路径包含 6 个活动。我想在主屏幕中创建我的 Booking 对象并将其移动到快乐的路径以检查其状态。我想我可以用MockWebServer模拟服务器响应。我看到的所有样本都在一次测试一项活动。
所以我的问题是我能够在一次测试中测试所有这些活动(快乐路径)吗?如果是,是否有任何样本?
简短的回答是肯定的。Espresso 非常适合测试单个应用程序中活动之间的交互。
UI Automator 旨在测试多个应用程序的交互。例如,如果您的应用程序使用相机,那么 UI Automator 非常适合测试您的应用程序和相机之间的交互。缺点是纯 UI Automator 测试对应用程序的内部工作一无所知。它可以根据视图层次结构搜索视图,但不了解资源 ID 等。
另一方面,Espresso 可以根据视图的 id 和您应用中可用的其他属性来查找视图。它可以单击一个按钮或另一个视图来启动另一个活动,然后与该活动进行交互。Espresso 只能与您自己的应用程序中的视图一起使用。
Espresso 和 UI Automator 可以一起使用。您可以使用 UI Automator 向另一个应用程序(例如相机)启动 Intent 并与之交互。当执行流程返回到您自己的应用程序时,您可以使用 Espresso 检查结果。即使是在您自己的应用程序中进行测试,我也发现 UI Automator 中的 UiDevice 类可以方便地操作设备,例如导致方向更改。
浓缩咖啡应该能够处理多种活动。但是当您说端到端测试时,您想将应用程序视为一个黑盒并针对它运行一个独立的测试框架吗?
在这种情况下,Espresso 似乎不是解决方案,尽管您确实可以使用它来通过许多不同的活动来锻炼您的快乐之路。