2015-11-10 24 views
10

Ho un viewpager personalizzato (con swip disabilitato per motivi) che funziona con un tablayout. Il contenuto cambia in base alla scheda selezionata. Voglio testare questo usando espresso: 1) Fare clic su una particolare scheda 2) Controllare alcuni dati in una pagina specifica della scheda Come posso farlo. Sono un novizio per l'espressoCome impostare la scheda corrente in viewpager con tablayout

risposta

-3

Espresso deve essere utilizzato quando si sa chiaramente cosa è previsto nell'interfaccia utente e quindi è possibile verificare lo stesso.

Nel tuo caso, per andare a qualsiasi scheda, puoi usare l'azione di visualizzazione per toccare quella scheda. Per verificare i dati, per prima cosa dovresti sapere quali dati ci si aspetta che siano presenti in quella scheda e quindi utilizzare solo i parametri di corrispondenza per verificare se sono visualizzati o meno.

+1

Questo non spiega come selezionare una scheda specifica in un ViewPager. –

12

Ci sono diversi modi di fare questo, un compito facile è quello di selezionare l'elemento da parte del titolo della scheda, io uso questo codice:

Matcher<View> matcher = allOf(withText("TAB TITLE"), 
      isDescendantOfA(withId(R.id.customTab))); 
onView(matcher).perform(click()); 
SystemClock.sleep(800); // Wait a little until the content is loaded 

Devi solo adattare il matcher al layout. Quindi, controllare il contenuto.

Ad esempio:

onView(withId(R.id.someId)).check(matches(isCompletelyDisplayed())); 

o:

onView(withText(R.string.someText)).check(matches(isCompletelyDisplayed())); 

Si possono trovare esempi qui nel Specifica di una vista Matcher sezione: http://developer.android.com/intl/es/training/testing/ui-testing/espresso-testing.html

Se si utilizza un RecyclerView a mostra il contenuto delle schede dai un'occhiata a questo: Espresso RecyclerView inside ViewPager

Problemi correlati