Этот вопрос относится к функции расширения Kotlin, используемой в разработке для Android.
Таким образом, Kotlin предоставляет нам возможность добавить определенное поведение расширения в класс для расширения поведения базового класса.
Пример: (возьмите из моего текущего проекта Android, для viewAssertion в тестировании с Espresso)
fun Int.viewInteraction(): ViewInteraction {
return onView(CoreMatchers.allOf(ViewMatchers.withId(this), ViewMatchers.isDisplayed()))
}
В моем случае я могу использовать его как:
R.id.password_text.viewInteraction().perform(typeText(PASSWORD_PLAIN_TEXT), pressDone())
Все хорошо, кроме этогоФункция extension обеспечивает расширенное поведение для всех Int
объектов, а не только для идентификаторов View в Android, что совсем нехорошо.
Вопрос в том, существует ли какой-либо способ дать контекст для этого Int
как в Android у нас есть @ IdRes в аннотации поддержки Android для указанного выше случая?