Вам нужно будет создать новый ViewAction
, так как Espresso не имеет доступа к EditText
, встроенному в TextInputLayout
. Вы можете использовать что-то вроде этого
class TextInputLayoutActions {
class ReplaceTextAction(private val text: String): ViewAction {
override fun getDescription(): String {
return String.format(Locale.ROOT, "replace text(%s)", text)
}
override fun getConstraints(): Matcher<View> {
return allOf(isDisplayed(), ViewMatchers.isAssignableFrom(TextInputLayout::class.java))
}
override fun perform(uiController: UiController?, view: View?) {
(view as? TextInputLayout?)?.let {
it.editText?.setText(text)
}
}
}
companion object {
@JvmStatic
fun replaceText(text: String): ViewAction {
return actionWithAssertions(ReplaceTextAction(text))
}
}
}
, а затем использовать его как
<ViewInteraction>.perform(TextInputLayoutActions.replaceText(<text>)