I have a PinCodeView
that extends LinearLayout
. I have following code in my init()
method. DigitEditText
extends Ed
I solved my problem with this trick. Hope it saves some times for you.
First I used Id
rather than tag
.
for (int i = 0; i < 4; i++)
{
DigitEditText digitView = getDigitInput();
digitView.setId(R.id.etPinCodeView + i); // uses for Espresso testing
digitView.setKeyEventCallback(this);
...
And this is test for it:
onView(withId(R.id.etPinCodeView + 0)).perform(typeText("2"));
onView(withId(R.id.etPinCodeView + 1)).perform(typeText("0"));
onView(withId(R.id.etPinCodeView + 2)).perform(typeText("1"));
onView(withId(R.id.etPinCodeView + 3)).perform(typeText("6"));
Since withTagValue needs an instance of org.hamcrest.Matcher
as an argument, we can create a simple one using the Matcher.is method
to find views with a certain tag in your expresso test:
String tagValue = "lorem impsum";
ViewInteraction viewWithTagVI = onView(withTagValue(is((Object) tagValue)));