【问题标题】:Android Espresso testing using Kotlin trying to iterate through ChipGroup使用 Kotlin 尝试迭代 ChipGroup 的 Android Espresso 测试
【发布时间】:2020-05-23 02:20:08
【问题描述】:

我的应用程序有 ChipGroups,里面有单独的 Chips。 (Documentation)(Description)

我想做的是使用 Android 中的 Espresso 库来测试这些组件的功能。我想单击Chips,尤其是它们的关闭按钮,以删除它们并检查它们是否实际被删除等。我无法找到有关迭代ChipGroups 的信息,例如使用@987654329 @。 Espresso.onView().perform() 等方法缺少此功能。我最接近的是在RecyclerViews 和ListViews 上查看信息。

我查看了文档herecheatsheet 等。知道我应该做什么来测试这些组件吗?

【问题讨论】:

  • 你注意到chipGroup是一个视图组了吗?所以我认为您可以获取子视图并对其进行迭代,将每个视图投射到复选框

标签: android testing kotlin material-design android-espresso


【解决方案1】:

作为一个选项:

fun chipContainsText(text: String) {
    onView(allOf(withText(containsString(text)), isAssignableFrom(Chip::class.java))).check(matches(isDisplayed()))
}

我使用它:

chipContainsText(1000) 

一般来说,使用isAssignableFrom(CLASS_NAME::class.java) 在困难的情况下总是很有帮助的。

布局截图:

【讨论】:

  • 方法isAssignableFrom() 是一个强有力的声明。你给我的代码有效。当我给它Chip的文字时,测试发现并验证了它。谢谢!两个增强会很棒。 1) 允许动态加载Chip 的文本,因为后端发送字符串而我不提前知道。 2) 有更多选项,例如单击Chip 上的关闭按钮。你做了什么来测试它?
  • 不幸或令我高兴的是,我有一个元素无法关闭(可以在屏幕截图中看到)。您可以获得每个芯片的值。或者您可以单击元素索引。顺便说一句,我在这种情况下使用模拟数据进行检查。或者我可以提前一步获取数据,保存并点击我保存的值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-29
  • 2017-06-21
相关资源
最近更新 更多