千家信息网

怎么用Espresso测试UI界面

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,小编给大家分享一下怎么用Espresso测试UI界面,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!基本测试先来看看可能需要写的一些常见测试:按照上面的模式,根据要求编写测试用例:在默
千家信息网最后更新 2026年11月04日怎么用Espresso测试UI界面

小编给大家分享一下怎么用Espresso测试UI界面,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

  基本测试

  先来看看可能需要写的一些常见测试:

  

  按照上面的模式,根据要求编写测试用例:

  在默认窗口层次结构之外测试视图

  可能有几种情况需要测试不属于默认窗口层次结构的视图。例如,测试可能使用WindowManager呈现的视图:

 

  测试一个AdapterView

  现在继续进行AdapterView测试。为了测试AdapterView,Espresso提供了一个单独的onData()入口,在对其本身或其子进行任何操作之前,首先对适配器项目进行测试。如果要测试一个AdapterView,需要使用onData()方法而不是onView()方法。

  可以在中找到可用的ObjectMatcher,DataOptions,ViewAction和ViewAssertion的完整列表。

  下面是一个简单的例子,找到一个匹配单词"Espresso"的String类型列表项并对它执行click()事件:

  下面的例子将找到具有内容"item content:10"的列表项目,并且在其具有id R.id.item_id的子视图上执行点击事件:

  测试一个RecyclerView

  由于RecyclerView对象的行为与AdapterView对象的行为不同,所以不能使用onData()来测试RecyclerView对象。

  如果要测试RecyclerView,需要添加espresso-contrib包依赖项。这个软件包包含一个RecyclerViewActions的集合,可以使用它来滚动到位置或对这些项目执行操作。

  要使用Espresso与RecyclerView进行交互,可以使用espresso-contrib软件包(在app / build.gradle中添加"com.android.support.test.espresso:espresso-contrib:2.2.2"依赖项) RecyclerViewActions可用于滚动到位置或对项目执行操作。该集合包括以下RecylerViewActions:

  ·scrollTo() - 此RecyclerViewActions滚动到匹配的视图。

  ·scrollToHolder() - 此RecyclerViewActions滚动到匹配的视图持有者。

  ·scrollToPosition() - 此RecyclerViewActions滚动到一个特定的位置。

  ·actionOnHolderItem() - 此RecyclerViewActions在匹配的View Holder上执行View Action。

  ·actionOnItem() - 此RecyclerViewActions在匹配的View上执行View Action。

  ·actionOnItemAtPosition() - 此RecyclerViewActions在特定位置的视图上执行ViewAction。

  我们来看一个测试RecyclerView的例子:

  上面的例子将首先找到ID为R.id.rv_espresso的RecyclerView,然后滚动到第五个位置并在该项目上执行一个单击事件。

  同样,我们也可以使用其他的RecyclerViewActions。

  现在看看如何测试一个自定义RecyclerView,例如ExpandableRecyclerView。考虑一下,当需要测试可展开视图的子视图的情况。

  首先,编写一个可以执行的自定义操作:

  

  现在,在子视图上执行这个操作:

  现在来看看如何编写和使用Custom Matcher和Custom Failure Handler。

  Custom Matcher & FailureHandler

  在编写测试用例时,可能需要实现Custom Matcher或者Custom Failure Handler,因为在某些情况下,缺省的处理器可能不足够。

  1.Custom Matcher

  有些情况下,默认的可用匹配器可能是不够的。在这种情况下,需要编写我们自己的匹配器。考虑一个情况,当需要检查EditText中的文本是否与正则表达式匹配时,由于没有默认的匹配器做这个工作,所以需要程序员自己实现。

  我们来看看如何编写一个用于验证模式的Custom Matcher:

  

  使用这个匹配器:

  2.Custom Failure Handler

  有些情况下,我们可能想要处理一些Espresso抛出的异常,并自定义一些实现,比如记录一些可能更有意义的额外数据。

  

  在已经写了一个custom failure handler程序之后,我们需要这样设置它:

看完了这篇文章,相信你对"怎么用Espresso测试UI界面"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

测试 视图 情况 项目 位置 例子 事件 对象 面的 界面 层次 方法 模式 程序 篇文章 结构 行为 软件 软件包 处理 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云之行互联网科技 互联网巨头反垄断金融科技 科技信息互联网 互联网 科技 科技与互联网发展 礼当家互联网科技 广州宏创互联网科技 万达互联网科技 掌上梦互联网科技 重庆科技学院互联网 滨湖区互联网智能科技产品供应 互联网科技公司需要的职位 昭通云南众福互联网科技有限公司 宁夏科技产业互联网案例 昊天互联网科技有限公司 互联网科技大奖都有哪些公司 乌鲁木齐新华智原互联网科技学校 广州新华互联网科技学校电竞方面 从那以后互联网科技有限公司 互联网科技大会大佬 善班互联网科技有限公司 博兴的互联网电子科技公司 移动互联网科技股 广州新华互联网科技学校电竞方面 山东有哪些互联网科技公司 城市宝互联网科技有限公司 领航科技大厦互联网公司 互联网领先科技成果宣传视频 优雇互联网科技有限公司 科技互联网企业在行动
0