Existe-t-il un moyen de tester avec Espresso que le snack-bar affiche le texte approprié?
J'ai un simple appel pour créer un snack
Snackbar.make(mView, "My text", Snackbar.LENGTH_LONG).show();
J'ai essayé sans chance
onView(withText("My text")).inRoot(withDecorView(not(is(mActivityRule.getActivity().getWindow().getDecorView())))).check(matches(isDisplayed()));
Cela a fonctionné pour moi, s'il vous plaît essayez.
onView(allOf(withId(Android.support.design.R.id.snackbar_text), withText("My text")))
.check(matches(isDisplayed()));
Si vous utilisez AndroidX, veuillez utiliser les éléments suivants:
onView(withId(com.google.Android.material.R.id.snackbar_text))
.check(matches(withText(R.string.whatever_is_your_text)))
Une alternative
private void checkSnackBarDisplayedByMessage(
@StringRes int message) {
onView(withText(message))
.check(matches(withEffectiveVisibility(
ViewMatchers.Visibility.VISIBLE
)));
}
J'ai vu les réponses précédentes mais je pensais que ce serait mieux.
@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()));
}