【问题标题】:Advantages of espresso over instrumentation test casesespresso 相对于仪器测试用例的优势
【发布时间】:2017-03-20 07:50:56
【问题描述】:

我已经体验过 espresso 的 doc,但仍然没有从中受益,因此我可以通过仪器转向 espresso。有人可以帮忙吗?

我从浓缩咖啡中了解到的是:

  1. 使用 Espresso 的一个主要好处是它提供了测试操作与您正在测试的应用程序 UI 的自动同步。
  2. Espresso 会检测主线程何时空闲,因此它能够在适当的时间运行您的测试命令,从而提高测试的可靠性。
  3. 此功能还使您不必在测试代码中添加任何计时解决方法,例如 Thread.sleep()

在第 1 点,我无法了解它在采取行动时如何保持同步。

在第 2 点,线程如何变得空闲以及我们如何避免Thread.sleep() 是 espresso 等待元素,直到它不显示在屏幕上。

请建议我应该如何使用它。谢谢

【问题讨论】:

  • 您所说的“浓缩咖啡优于仪表”是什么意思? espresso 是一个做仪器测试的库吗?
  • @stamanuel 我很困惑用什么仪器或浓缩咖啡你能帮忙吗

标签: android android-espresso android-instrumentation


【解决方案1】:

但仍然没有得到它的好处,因此我可以转向浓缩咖啡而不是仪表

我认为您在这里混淆了一些事情:

Instrumentation-Test 不是必需的,这意味着您必须使用espresso

一般Instrumented Tests 是测试:

...可以利用 Android 框架 API 和支持 API,例如 Android 测试支持库。 Source

这意味着您可以编写“经典”单元测试或检测单元测试,例如需要一个 android 上下文来运行。单元测试是测试代码的单个部分的测试,例如服务或类似的东西。

另一方面,UI tests 是真正启动您的活动并在您的应用中执行某些操作的测试。

Espresso 本身只是一个帮助您编写自动化 UI 测试的库。您可以使用它与应用程序中的 UI 进行交互(单击按钮、检查视图内容等)。

此外还有ui-automator library,它可以做类似的事情,但适用于不在您的应用程序中但例如系统对话框(权限对话框、最近应用程序或主页按钮...)的 UI 交互,或者如果您有跨多个应用程序的测试用例。

所以回答你的问题:你不能“偏爱”espresso 而不是仪器测试,因为 espresso 是一个用于自动化仪器测试的库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    • 2018-10-22
    • 2017-03-19
    • 2010-12-23
    • 2015-07-23
    • 2011-02-26
    • 1970-01-01
    相关资源
    最近更新 更多