Ваш компонент, вероятно, имеет имя класса.Допустим, CustomEditText
.В этом случае вы можете реализовать пользовательское сопоставление на основе BoundedMatcher
, которое гарантирует, что оно будет соответствовать только экземплярам представления вашего CustomEditText
.
Простая реализация может выглядеть так:
fun customEditWithId(idMatcher: Matcher<Int>): Matcher<View> {
return object : BoundedMatcher<View, CustomEditText>(CustomEditText::class.java!!) {
override fun describeTo(description: Description) {
description.appendText("with id: ")
idMatcher.describeTo(description)
}
override fun matchesSafely(textView: CustomEditText): Boolean {
return idMatcher.matches(textView.id)
}
}
}
тогда ваше утверждение выглядит так:
onView(customEditWithId(0)).perform(click());