android - 如何在Kotlin编程语言的Android Espresso中测试textview的背景是否是正确的可绘制集合xml资源
问题描述
我正在使用 Kotlin 开发一个 Android 应用程序。我正在向我的应用程序添加仪器测试。如果在 XML 资源中设置正确的可绘制文本,我在测试 textview 的背景时遇到问题。
我正在像这样以编程方式设置文本视图的背景。
when (type) {
ApplicationController.EVENT_TYPE_FUTURE -> {
detailsViewHolder.tvStatus.setBackgroundResource(R.drawable.background_future_event)
}
ApplicationController.EVENT_TYPE_PAST -> {
detailsViewHolder.tvStatus.setBackgroundResource(R.drawable.background_past_event)
}
ApplicationController.EVENT_TYPE_CURRENT -> {
detailsViewHolder.tvStatus.setBackgroundResource(R.drawable.background_current_event)
}
}
在 expresso 中,我想断言文本视图是使用正确的 XML 资源设置的。我怎样才能做到这一点?
解决方案
您可以使用 Espresso 的视图匹配器之一 ViewMatchers.hasBackground:
onView(withId(R.id.tvStatus)).check(matches(hasBackground(R.drawable.background_future_event)))
虽然匹配器处于测试阶段,但我希望它适用于您的情况,否则您可能必须创建自定义匹配器。
推荐阅读
- tensorflow - 分布式 TensorFlow 在 CreateSession 期间挂起
- f# - 如何在 F# 中编写 csv?
- python - “ModuleNotFoundError:没有名为 x 的模块”:Pydev 配置正确吗?
- javascript - 检查数字列表的 if 语句
- html - 如何将文件内容显示为 HTML 以使其成为完整的 HTML
- c# - 如果文件存在,File.WriteAllText 不会覆盖
- javascript - 会话在 php 中的 onclick 链接时开始
- go - 如何从 R 中的散列消息和签名中正确恢复 ECDSA 公钥 || 小号 || V格式?
- javascript - 键入焦点到下一个文本输入后
- content-type - 使用 Java RestAssured 时出现意外的内容类型