2015-08-20 10 views
6

Sto provando a testare l'app per Android utilizzando Espresso FW e ho risolto il problema con la richiesta async HTTP.Richiesta HTTP asso + Android + Android -> come testare?

Come posso verificare il caso in cui l'app (attività) è in attesa di richiesta di elaborazione e dopo che la risposta è stata ricevuta viene visualizzata l'attività successiva con risultato o messaggio di errore?

Ho provato a trovare qualsiasi soluzione su come farlo nell'Espresso con test contro i dati dal server di prova, ma senza fortuna.

Molte grazie per qualsiasi consiglio, esempio o collegamento.

risposta

0

Penso che il problema sia nell'architettura delle app. È necessario utilizzare una libreria di Iniezione delle dipendenze per iniettare il servizio di simulazione con dati falsi nell'applicazione in modalità test. Quando si esegue l'implementazione "test" (mock) durante il test. U eviterà problemi con la mancata disponibilità della rete o è possibile simulare la disponibilità della rete dall'implementazione del test.

+0

Potete fornire qualche esempio di questo? Vorrei testare su dati reali del server, ma se non è possibile userò alcuni dati falsi. – redrom

+0

@mariopce: puoi aiutarmi in questo. come configurare questo. ci sono librerie per questo? Sono bloccato in questo. mi aiuti per favore. –

+0

Non lo accetto. Mentre probabilmente dovresti testare anche usando i mock come descrivi, ci sono validi motivi per testare contro un servizio live. – aaronmarino

1

Ho lottato con questo per alcuni giorni. Se la tua applicazione utilizza retrofit per gestire le richieste HTTP, è possibile aggiungere questa una riga:

.setExecutors(AsyncTask.THREAD_POOL_EXECUTOR, new MainThreadExecutor()) 

al vostro RestAdaptor.Builder. Questo sposta tutte le richieste HTTP nel pool AsyncTasks che viene poi gestito dall'espresso.

Ho trovato la risposta originale qui: http://www.michaelevans.org/blog/2015/08/03/using-espresso-for-easy-ui-testing/