Können wir Assertion auf Edittext Value ausführen und unseren Testfall entsprechend seiner Ausgabe aufschreiben. Wie, wenn wir EditText Wert für unsere Wert gleich ist, dass wir Bedingung A sonst B.EditText-Wert in Espresso bestätigen
onView(withId(viewId)).check(matches(isEditTextValueEqualTo(viewId, value)));
Matcher<View> isEditTextValueEqualTo(final int viewId, final String content) {
return new TypeSafeMatcher<View>() {
@Override
public void describeTo(Description description) {
description.appendText("Match Edit Text Value with View ID Value : : " + content);
}
@Override
public boolean matchesSafely(View view) {
if (view != null) {
String editTextValue = ((EditText) view.findViewById(viewId)).getText().toString();
if (editTextValue.equalsIgnoreCase(content)) {
return true;
}
}
return false;
}
};
}
Dies funktioniert nicht versuchen, mit .. catch (Exception e)
Vielen Dank für Ihren Kommentar, aber es ist mit AssertionFailedError catch Block behoben. Auch FYI wir können Einblick in Matcher bekommen. – Krishnakant
Ich sage nicht, dass es nicht getan werden kann, ich sage nur, dass es nicht effizient ist. Wenn Sie eine Ansicht haben, sollten Sie keine langsamen Operationen ausführen, um die gleiche Ansicht zu erhalten. FindViewById ist keine billige Operation wie jeder Zugriff auf die View-Hierarchie. – jeprubio
ohk Großer Dank :-) – Krishnakant