Szenario:Android Unit Testing mit AsyncTask und UI-Updates Lösung
ich den onClick-Handler meiner Anwendung zu Unit-Test zu versuchen. Onclick führt eine einfache Suche nach einer REST-API durch, gibt die Ergebnisse zurück und aktualisiert die Benutzeroberfläche.
Details:
Onclick führt eine AsyncTask, fragt der doInBackground die REST-API und die Ergebnisse zurückgibt. Der onPostExecute übernimmt die Ergebnisse und weist dem ListView einen neuen ListAdapter mit den Daten zu.
Problem:
Die OnPostExecute bekommt durch den Test Runner nicht genannt in, da sie auf dem gleichen UI-Thread ist und blockiert den Anruf. Es gibt verschiedene Muster dafür. Wenn ich jedoch die AsyncTask in ein Runnable-Objekt einfüge und das LatchCountdown-Objekt zum Warten auf das Ergebnis verwende, erhalte ich die CalledFromWrongThread-Exception.
Gibt es eine gute Lösung zum Testen einer AsyncTask, die UI-Updates durchführt? Oder ein testbareres Design, das ich implementieren kann?
Das klingt mehr wie eine ActivityInstrumentationTestCase für mich ... – dmon
Dies wird in einer ActivityInstrumentationTestCase2-Klasse durchgeführt. – bcdennis72
Ihre asynctask sollte gut laufen dann ... – dmon