android - Prueba de Snackbar show con Espresso
integration-testing android-testing (3)
¿Hay alguna forma de probar con Espresso que la barra de refrigerios se muestre con el texto correcto?
Tengo una simple llamada para crear un snackbar.
Snackbar.make(mView, "My text", Snackbar.LENGTH_LONG).show();
He intentado esto sin suerte
onView(withText("My text")).inRoot(withDecorView(not(is(mActivityRule.getActivity().getWindow().getDecorView())))).check(matches(isDisplayed()));
Esto funcionó para mí, por favor intente
onView(allOf(withId(android.support.design.R.id.snackbar_text), withText("My text")))
.check(matches(isDisplayed()));
Si usa AndroidX, use lo siguiente:
onView(withId(com.google.android.material.R.id.snackbar_text))
.check(matches(withText(R.string.whatever_is_your_text)))
Una alternativa
private void checkSnackBarDisplayedByMessage(
@StringRes int message) {
onView(withText(message))
.check(matches(withEffectiveVisibility(
ViewMatchers.Visibility.VISIBLE
)));
}
Vi las respuestas anteriores pero pensé que esto sería mejor.
@Test
public void onFabClick_shouldDisplaySnackbar() throws Exception {
onView(withId(R.id.fab)).perform(click());
// Compare with the text message of snackbar
onView(withText(R.string.snackbar_message))
.check(matches(isDisplayed()));
}