ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

自定义Matcher实战:espresso-samples教你匹配Toolbar标题文字的完整方案

自定义Matcher实战:espresso-samples教你匹配Toolbar标题文字的完整方案 自定义Matcher实战espresso-samples教你匹配Toolbar标题文字的完整方案【免费下载链接】espresso-samplesA collection of samples demonstrating different Espresso techniques.项目地址: https://gitcode.com/gh_mirrors/esp/espresso-samples正在做 Android UI 自动化测试的你是否被 Toolbar 的标题文字难住了espresso-samples 是 Android 官方推荐的 Espresso 测试技术示例合集其中 toolbar-title 示例就用几十行代码演示了如何用自定义 Matcher 精准匹配 Toolbar 标题。本文将带你用 3 步搞定这个完整方案新手也能照抄上手 为什么 withText() 对 Toolbar 标题文字无能为力在 Espresso 中withText(标题)是最常用的匹配器但很多 App 的顶部标题并不是一个普通的TextView而是Toolbar组件通过setTitle()设置的属性。Toolbar本身没有text属性直接用withText()会报找不到视图或匹配失败。这就是自定义 Matcher 登场的地方自己写一个能读取toolbar.title的匹配器。完整方案三步实现自定义 Toolbar 标题 Matcher第 1 步定位 Toolbar 组件用isAssignableFrom(Toolbar::class.java)锁定页面上的 Toolbar而不是去猜它里面某个 TextView 的 id。第 2 步用 BoundedMatcher 编写 withToolbarTitle核心逻辑只有两行判断toolbar.title是否符合期望值并补充失败时的描述信息方便排查object : BoundedMatcherAny, Toolbar(Toolbar::class.java) { override fun matchesSafely(toolbar: Toolbar): Boolean { return textMatcher.matches(toolbar.title) } override fun describeTo(description: Description) { description.appendText(with toolbar title: ) textMatcher.describeTo(description) } }第 3 步在测试用例中组合断言先通过isAssignableFrom(Toolbar::class.java)定位视图再.check(matches(withToolbarTitle(is(title))))断言标题文字即可验证 App 启动后 Toolbar 正确显示了 My Awesome Title。提示describeTo()别偷懒写清楚的描述能让断言失败时直接告诉你期望的标题是什么、实际匹配器是什么调试效率翻倍 ✅示例代码位置一览文件作用toolbar-title/app/src/androidTest/java/com/sqisland/espresso/toolbar_title/MainActivityTest.kt自定义 Matcher 完整测试用例toolbar-title/app/src/main/java/com/sqisland/espresso/toolbar_title/MainActivity.kt被测页面通过 setTitle() 设置标题toolbar-title/app/src/main/res/values/strings.xml标题文案 My Awesome Titletoolbar-title/README.md该示例的官方说明举一反三示例集中的其他 Matcher 场景espresso-samples 还收录了多个值得收藏的实战技巧列表数据匹配list-view-basic/app/src/androidTest/java/com/sqisland/android/espresso/list_view_basic/MainActivityTest.kt 演示用自定义withValue()匹配 ListView 中的业务对象而不是文本重复操作直到满足条件repeatedly-until/app/src/androidTest/java/com/sqisland/espresso/repeatedly_until/MainActivityTest.kt 展示repeatedlyUntil()点击计数器直到文字变为 11⚖️条件跳过测试assume/app/src/androidTest/java/com/sqisland/espresso/assume/MainActivityTest.kt 演示用Assume让测试仅在特定地区执行快速上手步骤克隆仓库git clone https://gitcode.com/gh_mirrors/esp/espresso-samples打开toolbar-title目录用 Android Studio 加载运行MainActivityTestandroidTest 目录下的仪器化测试即可看到自定义 Matcher 验证 Toolbar 标题的完整流程 总结匹配 Toolbar 标题文字的完整方案 isAssignableFrom(Toolbar)定位 BoundedMatcher自定义断言 describeTo友好报错信息。掌握这套模式后无论是要匹配评分、角标还是自定义属性你都能照着 toolbar-title/app/src/androidTest/java/com/sqisland/espresso/toolbar_title/MainActivityTest.kt 的模式迁移到真实项目中。【免费下载链接】espresso-samplesA collection of samples demonstrating different Espresso techniques.项目地址: https://gitcode.com/gh_mirrors/esp/espresso-samples创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表