热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在Espresso中测试相对布局的内容-TestingcontentsofaRelativeLayoutinEspresso

IhavethefollowingStructure:我有以下结构:+------------>LinearLayout{id2131689635,res-namell_mo

I have the following Structure:

我有以下结构:

+------------>LinearLayout{id=2131689635, res-name=ll_monthly_advance_payments_container, 
|
+------------->LinearLayout{id=2131689636,  res-name=ll_monthly_advance_payments_list_container, 
|
+-------------->LeftRightListItemView{id=-1, 
|
+--------------->RelativeLayout{id=-1, 
|
+---------------->ScrollableTextView{id=2131689786, res-name=stv_left, text=Electricity
|
+---------------->AppCompatTextView{id=2131689787, res-name=tv_right, text=53.00 EUR
|
+-------------->LeftRightListItemView{id=-1, 
|
+--------------->RelativeLayout{id=-1, 
|
+---------------->ScrollableTextView{id=2131689786, res-name=stv_left, text=Water
|
+---------------->AppCompatTextView{id=2131689787, res-name=tv_right, text=251.00 EUR
|
+-------------->LeftRightListItemView{id=-1, 
|
+--------------->RelativeLayout{id=-1, 
|
+---------------->ScrollableTextView{id=2131689786, res-name=stv_left, text=Totals
|
+---------------->AppCompatTextView{id=2131689787, res-name=tv_right, text=304.00 EUR

What I am trying to do is test whether as a pair, stv_left and tv_right contains the correct values. I can confirm each one individually with the following script:

我要做的是测试是否一对,stv_left和tv_right包含正确的值。我可以使用以下脚本单独确认每个:

onView(allOf(withId(R.id.tv_right), withText("53.00 EUR"), isDescendantOfA(withId(R.id.ll_monthly_advance_payments_list_container))));

I cannot confirm them as a pair. How I can solve this problem?

我无法确认它们是一对。我怎么能解决这个问题?

2 个解决方案

#1


0  

Do you have a ListView? Then you could use the onData DataInteraction instead of the onView ViewInteraction.

你有ListView吗?然后你可以使用onData DataInteraction而不是onView ViewInteraction。

If this is not feasible you could use the hasSibling Matcher, e.g. in this way:

如果这不可行,您可以使用hasSibling匹配器,例如通过这种方式:

onView(allOf(withId(R.id.stv_left), withText("Electricity"),
    hasSibling(allOf(withId(R.id.tv_right), withText("53.00 EUR"))),
    isDescendantOfA(withId(R.id.ll_monthly_advance_payments_list_container))));

But you probably want to do the text matching in the check() like this (I also removed some matchers which don't seem necessary for me):

但你可能想在check()中进行文本匹配(我也删除了一些对我来说似乎没必要的匹配器):

onView(allOf(
    withId(R.id.tv_right),
    hasSibling(withText("Electricity"))))
.check(matches(withText("53.00Euro")));

#2


0  

Both worked for me.

两者都适合我。

An alternative soltion that I stumbled upon was:

我偶然发现的一个替代解决方案是:

onView(allOf(withText("Elecrtricity"),
    withText("53.00 EUR"),
    isDescendantOfA(withId(R.id.ll_monthly_advance_payments_list_container))));

推荐阅读
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • 本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ... [详细]
  • 本文介绍了在 Java 编程中遇到的一个常见错误:对象无法转换为 long 类型,并提供了详细的解决方案。 ... [详细]
  • 实验九:使用SharedPreferences存储简单数据
    本实验旨在帮助学生理解和掌握使用SharedPreferences存储和读取简单数据的方法,包括程序参数和用户选项。 ... [详细]
  • 装饰者模式(Decorator):一种灵活的对象结构设计模式
    装饰者模式(Decorator)是一种灵活的对象结构设计模式,旨在为单个对象动态地添加功能,而无需修改原有类的结构。通过封装对象并提供额外的行为,装饰者模式比传统的继承方式更加灵活和可扩展。例如,可以在运行时为特定对象添加边框或滚动条等特性,而不会影响其他对象。这种模式特别适用于需要在不同情况下动态组合功能的场景。 ... [详细]
  • feat: Enhances Jest Testing Capabilities with Snapshot Support ... [详细]
  • 深入解析Android 4.4中的Fence机制及其应用
    在Android 4.4中,Fence机制是处理缓冲区交换和同步问题的关键技术。该机制广泛应用于生产者-消费者模式中,确保了不同组件之间高效、安全的数据传输。通过深入解析Fence机制的工作原理和应用场景,本文探讨了其在系统性能优化和资源管理中的重要作用。 ... [详细]
  • 在 Vue 应用开发中,页面状态管理和跨页面数据传递是常见需求。本文将详细介绍 Vue Router 提供的两种有效方式,帮助开发者高效地实现页面间的数据交互与状态同步,同时分享一些最佳实践和注意事项。 ... [详细]
  • SQLite数据库CRUD操作实例分析与应用
    本文通过分析和实例演示了SQLite数据库中的CRUD(创建、读取、更新和删除)操作,详细介绍了如何在Java环境中使用Person实体类进行数据库操作。文章首先阐述了SQLite数据库的基本概念及其在移动应用开发中的重要性,然后通过具体的代码示例,逐步展示了如何实现对Person实体类的增删改查功能。此外,还讨论了常见错误及其解决方法,为开发者提供了实用的参考和指导。 ... [详细]
  • 基址获取与驱动开发:内核中提取ntoskrnl模块的基地址方法解析
    基址获取与驱动开发:内核中提取ntoskrnl模块的基地址方法解析 ... [详细]
  • 技术分享:深入解析GestureDetector手势识别机制
    技术分享:深入解析GestureDetector手势识别机制 ... [详细]
  • 在处理大图片时,PHP 常常会遇到内存溢出的问题。为了避免这种情况,建议避免使用 `setImageBitmap`、`setImageResource` 或 `BitmapFactory.decodeResource` 等方法直接加载大图。这些函数在处理大图片时会消耗大量内存,导致应用崩溃。推荐采用分块处理、图像压缩和缓存机制等策略,以优化内存使用并提高处理效率。此外,可以考虑使用第三方库如 ImageMagick 或 GD 库来处理大图片,这些库提供了更高效的内存管理和图像处理功能。 ... [详细]
  • 地图集成方法与应用 ... [详细]
  • 在探讨C语言编程文本编辑器的最佳选择与专业推荐时,本文将引导读者构建一个基础的文本编辑器程序。该程序不仅能够打开并显示文本文件的内容及其路径,还集成了菜单和工具栏功能,为用户提供更加便捷的操作体验。通过本案例的学习,读者可以深入了解文本编辑器的核心实现机制。 ... [详细]
  • 深入解析JavaScript中的函数防抖与节流技术及其应用场景
    本文深入探讨了JavaScript中函数防抖和节流技术的原理及应用场景。通过详细的示例代码,全面解析了这两种优化方法在实际开发中的重要作用,为开发者提供了宝贵的参考和实践指导。 ... [详细]
author-avatar
火鸟大叔
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有