20

Czy istnieje sposób na sprawdzenie za pomocą Espresso, że pasek z przekąskami wyświetla się z odpowiednim tekstem?Testowanie pokazu paska z przekąskami za pomocą espresso

Mam proste wezwanie aby utworzyć bistrem

Snackbar.make(mView, "My text", Snackbar.LENGTH_LONG).show(); 

Próbowałem to bez powodzenia

onView(withText("My text")).inRoot(withDecorView(not(is(mActivityRule.getActivity().getWindow().getDecorView())))).check(matches(isDisplayed())); 

Odpowiedz

36

ten pracował dla mnie, proszę spróbować.

onView(allOf(withId(android.support.design.R.id.snackbar_text), withText("My text"))) 
      .check(matches(isDisplayed())); 
+0

To nie daje odpowiedzi na pytanie. Aby skrytykować lub poprosić o wyjaśnienie od autora, pozostaw komentarz pod swoim postem. – Sufian

+0

Czy nowe sformułowanie działa? – ksarmalkar

+0

Tak, zadziałało! Thanks @ksarmalkar – SleepingLlama

6

Alternatywną

private void checkSnackBarDisplayedByMessage(
     @StringRes int message) { 
    onView(withText(message)) 
      .check(matches(withEffectiveVisibility(
        ViewMatchers.Visibility.VISIBLE 
      ))); 
} 
0

Widziałem wcześniejsze odpowiedzi, ale myślałem, że to będzie lepiej.

@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())); 
} 
Powiązane problemy