文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么用Espresso测试UI界面

2023-06-05 03:17

关注

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

  基本测试

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

  怎么用Espresso测试UI界面

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

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

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

 怎么用Espresso测试UI界面

  测试一个AdapterView

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

怎么用Espresso测试UI界面

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

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

怎么用Espresso测试UI界面

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

怎么用Espresso测试UI界面

  测试一个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的例子:

怎么用Espresso测试UI界面

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

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

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

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

  怎么用Espresso测试UI界面

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

怎么用Espresso测试UI界面

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

  Custom Matcher & FailureHandler

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

  1.Custom Matcher

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

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

  怎么用Espresso测试UI界面

  使用这个匹配器:

怎么用Espresso测试UI界面

  2.Custom Failure Handler

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

  怎么用Espresso测试UI界面

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

怎么用Espresso测试UI界面

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯