Button.java
public class Button extends FrameLayout {
public Button(Context context, AttributeSet attrs) {
super(context, attrs);
TextView textView = new TextView(context);
textView.setText("Test");
}
}
layout.xml
<LinearLayout>
<com.Button id="button_1" />
<com.Button id="button_2" />
</LinearLayout>
Using Espresso, how to access the TextView created in Button, and verify its text?
onView(withId(R.id.button_1)<get_child>).check(matches(withText("Test")));
onView(withId(R.id.button_1)).check(matches(withChildText("Test")));
static Matcher<View> withChildText(final String string) {
return new BoundedMatcher<View, FrameLayout>(FrameLayout.class) {
@Override
public boolean matchesSafely(FrameLayout view) {
View child = view.getChildAt(0);
if (child != null && child instanceof TextView) {
return ((TextView) child).getText().toString().equals(string);
}
return false;
}
@Override
public void describeTo(Description description) {
description.appendText("with child text: ");
}
};
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With