Cortado:让你的 Espresso 更加流畅

在 Android 测试领域,Espresso 已经成为了自动化 UI 测试的重要工具。然而,即使 Esprsso 强大,它的 API 有时也可能让开发者感到有些复杂。这就是 Cortado 出现的原因,它是一个为 Espresso 提供更友好、更流畅 API 的开源库。
项目介绍
Cortado 是由 Bartosz Lipiński 创建的一个 Android 开源库,旨在提供一个抽象层,使 Espresso 的使用变得更加简单和直观。通过 Cortado,你可以更容易地构建复杂的 Matcher 和操作,而无需直接与 Espresso 的底层 API 打交道。
项目技术分析
Cortado 的核心亮点在于其 Fluent API 设计。它允许开发者以一种更加链式和可读的方式来编写测试代码。例如,要找到并点击一个 ID 为 "button" 的视图,使用 Espresso 需要这样写:
Espresso.onView(withId(R.id.button)).perform(ViewActions.click());
而在 Cortado 中,这个过程可以简化为:
Cortado.onView().withId(R.id.button).perform().click();
Cortado 还支持创建复杂的条件组合,如 Matchers.allOf(...) 和 Matchers.anyOf(...),以及否定条件。这使得测试逻辑更具表达性和清晰性。
项目及技术应用场景
Cortado 主要应用于 Android 应用的 UI 自动化测试场景。当你需要对界面元素进行精确匹配和操作时,Cortado 可以大大提高你的代码可读性和测试效率。特别是对于大型项目或团队协作,使用 Cortado 编写的测试代码将更容易理解和维护。
项目特点
- Fluent API - Cortado 的设计使得测试代码更易读,更易于编写。
- 兼容 Espresso - 兼容 Espresso 的现有 API,可以直接使用 Cortado 创建的 Matcher 和 ViewInteraction 对象。
- 自定义条件组合 - 支持通过
.and()和.or()方法创建复杂的条件组合。 - 简洁的检查和操作 - 使用
.check()和.perform()简化了视图的检查和交互操作。 - 易于集成 - 添加一个依赖项即可轻松将 Cortado 集成到你的项目中。
如何使用
要在你的项目中使用 Cortado,只需在你的 build.gradle 文件中添加以下依赖:
dependencies {
androidTestImplementation 'com.bartoszlipinski:cortado:1.2.0'
}
结语
如果你正在寻找一个可以让 Espresso 更上一层楼的库,那么 Cortado 绝对值得尝试。它不仅能提升你的测试体验,还能让你的团队成员在阅读和理解测试代码时感到愉快。现在就加入 Cortado 的行列,让你的测试工作变得更加高效和有趣吧!
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0423
jiuwenswarmJiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0740
Hy3Hy3 是由腾讯混元团队研发的快慢思考融合的混合专家模型,总参数量 295B,激活参数 21B,MTP 层参数 3.8B。4 月底发布 Hy3 Preview 后,我们在 50 多个业务中获得了广泛的反馈,修复了各种体验问题,进一步提升了后训练的质量和规模。今天,我们发布 Hy3。它展现出显著强于同尺寸并比肩旗舰(参数规模往往是 Hy3 的 2~5 倍)开源模型的智能水平,显著提升了在各类产品和生产力任务中的实用价值。Python00
LongCat-2.0LongCat-2.0,这是一款大规模混合专家(MoE)语言模型,总参数达1.6万亿,每 token 激活参数约480亿——相比前代 LongCat 模型实现了显著提升,同时带来多项架构改进。00
AscendNPU-IRAscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优C++0297
PromptXPromptX · 领先的AI 智能体上下文平台 | PromptX · Leading AI Agent Context PlatformJavaScript05