2016-01-08 11 views
14

In sostanza, ho un IdlingResource personalizzato che accetta una vista di un argomento del costruttore. Non riesco a trovare da nessuna parte che parla davvero di come implementarlo.Come ottenere una vista dall'interno di Espresso per passare a IdlingResource?

Sto cercando di utilizzare questa risposta: https://stackoverflow.com/a/32763454/1193321

Come si può vedere, ci vuole un ViewPager, ma quando sto registrando l'IdlingResource nella mia classe di prova, non sono sicuro di come posso ottenere la mia opinione.

Ho provato findViewById() e ho provato a eseguire l'attività attualmente in esecuzione e quindi chiamare findViewById() su quello, senza fortuna. Qualcuno sa cosa fare in questo scenario?

risposta

17

capito.Per ottenere la vista di passare in una risorsa al minimo, tutto quello che dovete fare è prendere la variabile membro della vostra ActivityTestRule

Ad esempio:

@Rule 
public ActivityTestRule<MainActivity> activityTestRule = new ActivityTestRule<>(
     MainActivity.class); 

e poi basta chiamare getActivity().findViewById(R.id.viewId)

Così il risultato finale è:

activityTestRule.getActivity().findViewById(R.id.viewId); 
1

io non abbia già utilizzato IdilingResources in Espresso, ma avete visto questi articoli:

Inoltre si prega di controllare Documenti ufficiali Android: Idling Resources (reference)

Per rispondere alla tua domanda,

Ecco un exmple tratto da un link qui sopra:

Partendo da un contesto, la vista radice del attività associata può essere avuto da

View rootView = ((Activity)_context).Window.DecorView.FindViewById(Android.Resource.Id.Content); 

in RAW Android assomiglia a qualcosa:

View rootView = ((Activity)mContext).getWindow().getDecorView().findViewById(android.R.id.content) 

Poi basta chiamare il findViewById su questo

View v = rootView.findViewById(R.id.your_view_id); 

Questo potrebbe essere anche utile: How to call getResources() from a class which has no context?

La speranza è aiutare

+0

Grazie per i collegamenti e frammenti di codice. Ho letto quei link prima di pubblicare la domanda. I post sul blog Chiukis sono fantastici. Ma la tua risposta sembra terribilmente "hacky" per me. Ci deve essere un modo per ottenere una sottofinestra direttamente da un test di caffè espresso no? – EGHDK

Problemi correlati