Sto cercando di aggiungere finalmente i test dell'interfaccia utente alla mia applicazione Android, per aumentare la copertura (tutti i miei altri livelli sono stati testati correttamente, quindi tutti i miei bug ora provengono dall'interfaccia utente ...) Ho iniziato a usare ActivityInstrumentationTestCase2
come la mia classe base per i test delle unità di emulazione, e le cose semplici sono facili da controllare e funzionano bene.Test Android: come controllare una finestra di dialogo viene visualizzata sullo schermo? (utilizzando ActivityInstrumentationTestCase2)
Ma ora, sto provando a controllare che una finestra di dialogo appaia come previsto, e non so come farlo.
La mia prova:
public void testOpensAboutDialogWhenAboutButtonClicked() {
final MyActivity activity = getActivity();
final Instrumentation instrumentation = getInstrumentation();
final Button aboutButton = (Button) activity.findViewById(R.id.about);
TouchUtils.clickView(this, aboutButton);
// how to test for the AboutDialog?
}
Ora la mia finestra non dispone di un ID, quindi non può ottenere un puntatore ad esso utilizzando findViewById. E 'stato creato utilizzando le classi di build disponibili:
final AlertDialog about = new AlertDialog.Builder(parent)
.setTitle(parent.getString(R.string.about_title))
.setCancelable(true)
.setIcon(R.drawable.skull)
....
Tutte le idee, o puntatori a tutorial?
EDIT: Per rispondere Jens commento, io sono non utilizzando le finestre di dialogo gestiti, solo la creazione del AlertDialog e mostrando con .Show()
Si stanno utilizzando finestre di dialogo gestite? – Jens
@Jens, in realtà non lo sono, non sapevo nemmeno di loro ... Ho appena letto su di loro, e questo potrebbe aiutare a risolvere il mio problema in effetti ... (Questo mi insegnerà a saltare le esercitazioni ...) Ci proverò stasera. Se lo fa, per favore scrivi una risposta in modo che io possa darti la taglia;) – Guillaume
Posso darti una risposta adeguata tra i due. – Jens