2014-12-29 11 views
8

Ho un Viewpager che è composto da copie della stessa vista frammento. Puoi scorrere tra di loro. Sto scrivendo un test Espresso e sto cercando di far valere gli ID di ogni pagina, ma sono ovviamente ambigui perché ci sono più pagine caricate e condividono tutti gli stessi ID. Non voglio cambiare la visualizzazione del cercapersone per caricare solo 1 pagina alla volta. Nella mia domanda, è inefficiente farlo.Come controllare gli ID degli articoli ViewPager con Espresso?

Ho anche pensato di utilizzare tag e taggare ogni vista con una stringa univoca, ma poi sto modificando il codice sorgente solo in modo che il mio test funzioni. Non mi piace. Qual è il modo corretto di controllare il contenuto all'interno della pagina di un viewpager con Espresso?

risposta

2

Supponendo che solo una delle pagine sia visualizzata alla volta, è possibile utilizzare swipeLeft/swipeRight per spostarsi su una pagina e quindi controllare che la cosa giusta sia visualizzata in quella pagina.

There are some examples here.

ad es.

onView(withId(R.id.pager)) 
    .perform(swipeLeft()) 
    .check(matches(hasDescendant(withText("Position #2")))); 
+0

Il problema non è con lo scorrimento, ma con il controllo del contenuto. Devo accedere agli elementi specifici di ogni pagina. Purtroppo non posso usare hasDescendant (withText()) a causa della natura del contenuto all'interno di quegli elementi (è spesso ripetuto). – Eduard

+0

Quindi qual è la cosa unica dal punto di vista dell'utente? – yogurtearl

+1

Per maggiore chiarezza, supponiamo di avere R.id.mytext all'interno di ciascuna pagina di un viewpager. Il suo contenuto è unico su ogni pagina, ma ha una parte ripetuta. Ad esempio, a pagina 1 si dice "Sr. Software Engineer", a pagina 2 si dice "Software Engineer in Test". Voglio affermare che il contenuto cambia da scorrimento a scorrimento, ma contiene ancora la parte ripetuta: "Software Engineer". Quindi per rispondere alla tua domanda, la stringa completa di R.id.mytext è unica (titolo di un lavoro) – Eduard

Problemi correlati