Espresso

您可以使用 Espresso 来编写简洁、美观且可靠的 Android 界面测试。

以下代码段展示了 Espresso 测试的一个示例:

Kotlin

@Test
fun greeterSaysHello() {
    onView(withId(R.id.name_field)).perform(typeText("Steve"))
    onView(withId(R.id.greet_button)).perform(click())
    onView(withText("Hello Steve!")).check(matches(isDisplayed()))
}

Java

@Test
public void greeterSaysHello() {
    onView(withId(R.id.name_field)).perform(typeText("Steve"));
    onView(withId(R.id.greet_button)).perform(click());
    onView(withText("Hello Steve!")).check(matches(isDisplayed()));
}

核心 API 小巧、可预测、易于学习,并且对 自定义。Espresso 测试会说明预期、交互和断言 而不受样板内容、自定义基础架构、 或杂乱的实施细节造成障碍。

Espresso 测试运行速度极快!它让您远离等待、同步、睡眠、 并在应用上操作和断言时 静态数据。

目标受众群体

Espresso 面向那些认为自动化测试 是开发生命周期不可或缺的一部分。虽然它可用于黑盒 熟悉测试工具的人员可以解锁 Espresso 的全部能力 受测代码库

同步功能

每次测试调用 onView(), Espresso 会等待执行相应的界面操作或断言, 满足以下同步条件:

  • 消息队列中没有 Espresso 立即需要的任何消息 过程。
  • 没有当前正在执行的“AsyncTask”实例 任务。
  • 开发者定义的所有 空闲资源处于空闲状态。

通过执行这些检查,Espresso 可显著提高 在任何给定时间都只能发生一项界面操作或断言。此功能 为您提供更可靠、更可靠的测试结果。

软件包

  • espresso-core - 包含核心和基本的 View 匹配器、操作和 断言。请参阅 基本信息食谱
  • espresso-web - 包含 WebView 支持的资源。
  • espresso-idling-resource - Espresso 与后台作业同步的机制。
  • espresso-contrib - 包含 DatePicker 的外部贡献, RecyclerViewDrawer 操作、无障碍功能检查以及 CountingIdlingResource
  • espresso-intents - 用于对封闭测试的 intent 进行验证和打桩的扩展。
  • espresso-remote - Espresso 的多进程功能的位置。

如需详细了解最新版本,请参阅 版本说明

其他资源

如需详细了解如何在 Android 测试中使用 Espresso,请查阅 以下资源。

示例