android-espresso
¿Cómo crear Matchers personalizados?
Buscar..
Ejemplo de emparejador personalizado para probar el mensaje de error de TextView
- Cree un nombre de clase
ErrorMatcherdentro de su paquete de prueba con el siguiente código:
public class ErrorMatcher {
@NonNull
public static Matcher<View> withError(final String expectedErrorText) {
Checks.checkNotNull(expectedErrorText);
return new BoundedMatcher<View, TextView>(TextView.class) {
@Override
public void describeTo(final Description description) {
description.appendText("error text: ");
stringMatcher.describeTo(description);
}
@Override
public boolean matchesSafely(final TextView textView) {
return expectedErrorText.equals(textView.getError().toString());
}
};
}
}
La lógica de coincidencia es encontrar el elemento TextView , cuyo texto de mensaje de error es igual al valor del texto de error esperado, pasando por el subconjunto de campos de TextView presentes en la jerarquía de diseño. describeTo método describeTo se utiliza para la salida de depuración.
- Luego puede usar su emparejador personalizado en el caso de prueba como se muestra a continuación:
@Test
public void verifiesSignInErrorIsShown() {
onView(withId(R.id.email_sign_in_button)).perform(click());
onView(ErrorMatcher.withError("Your error text")).check(matches(isDisplayed()));
}
Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow