2012-07-27 7 views
8

Sto provando a eseguire più casi di test per un'attività di accesso utilizzando ActivityInstrumentationTestCase2. Il primo test case test effettua il login con successo, che fa in modo che Activity attivi la prossima attività chiamando startActivity (Intent intent). Ora c'è un'altra attività in cima all'attività che sto provando a testare. Il primo caso di test passa e viene avviato il secondo caso di test. Tuttavia si bloccherà per sempre a getActivity() quando viene chiamato dal secondo caso di test.Test unità Android con ActivityInstrumentationTestCase2, getActivity() si blocca quando il caso di test precedente causa l'avvio di un'altra attività

Se si accede al codice Attività di accesso e commento la parte che chiama startActivity (Intent intent), entrambi i test case verranno eseguiti correttamente.

Ho già provato alcune cose. Ho usato Intent.FLAG_ACTIVITY_CLEAR_TOP per cancellare lo stack delle attività. In tal caso, l'attività principale viene chiusa e l'attività di accesso viene rivelata, ma rimane bloccata su getActivity() quando viene avviato il secondo caso di test.

Ho anche provato a inviare chiavi (KeyEvent.KEYCODE_BACK), ma ciò non ha effetti.

Cosa posso fare per superare questo? Grazie!

+0

getInstrumentation() AddMonitor (NextActivity.class.getName(), null, true).; Ha fatto il trucco! – initialxy

risposta

4
getInstrumentation().addMonitor(NextActivity.class.getName(), null, true); 

Ha fatto il trucco. Si noti che l'ultimo parametro è un indicatore che indica se bloccare o meno l'attività dall'avvio. Impostarlo su true ha risolto il problema.

link to doc

+3

Dove hai aggiunto questa chiamata? Puoi pubblicare una risposta più completa? –

Problemi correlati