Используя Espresso для запуска тестов пользовательского интерфейса, как вы ссылаетесь на значок закрытия в макете чипа дизайна материала? - PullRequest
0 голосов
/ 21 февраля 2019

Как правило, если мы хотим нажать кнопку с помощью эспрессо, вы подождите, пока загрузится представление с идентификатором.Затем выполните щелчок.Материал оформления чипа позволяет определить значок закрытия и поместить слушателя на значок закрытия.Однако это означает, что closeIcon не имеет идентификатора для прямой ссылки и отображается как часть Chip во время инспектора макета.

onView(withId(R.id.chip)).perform(click())

Как бы вы использовали эспрессо, чтобы найти значок закрытия?

1 Ответ

0 голосов
/ 21 февраля 2019

Нет простого способа сделать это с выражением эспрессо, но, поигравшись с ним, казалось, что Material Chip предоставляет функцию executeCloseIconClick (), которую я в конечном итоге подключил к действию Custom View Action.Надеюсь, что это поможет некоторым из вас.

 class ClickCloseIconAction : ViewAction {

    override fun getConstraints(): Matcher<View> {
        return ViewMatchers.isAssignableFrom(Chip::class.java)
    }

    override fun getDescription(): String {
        return "click drawable "
    }

    override fun perform(uiController: UiController, view: View) {
        val chip = view as Chip//we matched
        chip.performCloseIconClick()
    }
}

Это означает, что вы можете назвать это так

onView(withId(R.id.chip)).perform(ClickCloseIconAction())
...