/ / Wie verzögere ich die Ausführung eines Android-Tests, so dass eine AsyncTask zuerst beendet wird? - Android

Wie verzögere ich die Ausführung eines Android-Tests, so dass eine AsyncTask zuerst beendet wird? - Android

Ich schreibe einen Test für meine Android-App. Die App lädt einige externe Daten mithilfe einer AsyncTask in eine Ansicht. Ich möchte testen, dass die AsyncTask funktionierte und dass die Daten ordnungsgemäß in der Ansicht platziert werden. Das Problem besteht darin, dass mein Test ausgeführt wird (und fehlschlägt), bevor die AsyncTask abgeschlossen ist.

Was ist der beste Weg, um dieses Szenario zu bewältigen?

Antworten:

0 für die Antwort № 1

Sie können Mock-Daten verwenden, die viel schneller zurückgegeben werden, oder eine Art Warten auf ein Ereignis im Test implementieren.


0 für die Antwort № 2

Erstellen Sie sich eine Callback-Schnittstelle, diesetzt Ihre Routinen fort, nachdem der Aufruf zurückgegeben wurde oder verwenden Sie eine Sperre / Mutex. Ich würde einen Rückruf vorschlagen, damit Sie mit anderen Aufgaben fortfahren können, während Sie auf die Rückkehr der Daten warten, z. Zeichnen der Benutzeroberfläche. Sie könnten einen Ladebildschirm davor legen, um dem Benutzer zu zeigen, dass die Anwendung tatsächlich auf etwas wartet.