首页 > 解决方案 > 如何在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 资源设置的。我怎样才能做到这一点?

标签: androidkotlinandroid-espressoinstrumented-test

解决方案


您可以使用 Espresso 的视图匹配器之一 ViewMatchers.hasBackground

onView(withId(R.id.tvStatus)).check(matches(hasBackground(R.drawable.background_future_event)))

虽然匹配器处于测试阶段,但我希望它适用于您的情况,否则您可能必须创建自定义匹配器。


推荐阅读