使用 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 大大增加了在任何给定时间点只发生一个界面操作或断言的可能性。此功能可为您提供更可靠、更值得信赖的测试结果。
软件包
espresso-core
- 包含核心和基本View
匹配器、操作和断言。请参阅基础知识和用法。espresso-web
- 包含用于WebView
支持的资源。espresso-idling-resource
- Espresso 用于与后台作业同步的机制。espresso-contrib
- 外部贡献,包含DatePicker
、RecyclerView
和Drawer
操作、无障碍检查以及CountingIdlingResource
。espresso-intents
- 用于验证和模拟 Intent 以进行密封测试的扩展。espresso-remote
- Espresso 的 多进程功能的位置。
您可以通过阅读版本说明了解最新版本。
补充资源
如需了解在 Android 测试中使用 Espresso 的更多信息,请查阅以下资源。
示例
- Espresso 代码示例包含全部 Espresso 示例。
- BasicSample:基本的 Espresso 示例。
- (更多...)