Ich schreibe UI-Tests für meine Anwendung mit Espresso. Ich würde gerne die Tatsache testen, dass wenn ich auf die Zurück-Schaltfläche klicke, während eine Serveranfrage läuft, die App dort bleiben muss, wo sie ist.Espressotest zurück, während AsyncTask ausgeführt wird
Es scheint nicht möglich zu sein, aufgrund der Espresso-Architektur, die die Ausführung der Tests warten lässt, wenn eine Hintergrundoperation (wie AsyncTask) ausgelöst wurde.
Also, wie kann ich das folgende Szenario testen:
- Klick auf eine Schaltfläche, die ein AsyncTask
- Test ausgelöst, dass, während die Aufgabe ausgeführt wird, und ich drücken Sie die Taste zurück, bleibt die App da?
Ist es möglich?
danke
Hallo, ich bin die Automatisierung von diesem Test, so dass sie nicht von Hand ran und so kann ich nicht klicken manuell auf der Schaltfläche .. Und Aufruf von Activity.onBackPressed() nach dem Start der Aufgabe wird ein anderes Verhalten verursachen, weil es nach der Aufgabe ausgeführt wird, und wenn die Aufgabe beendet ist, ist das Verhalten der Schaltfläche zurück – Apperside
Ich bin mir bewusst, dass die Tests sind automatisiert und Sie können nicht selbst klicken. Wenn Sie den Code aus meiner Antwort verwenden, wird 'onBackPressed()' ausgeführt, während 'AsyncTask' ausgeführt wird. Wenn die Task jedoch sofort oder kurz nach dem Start beendet wird, ist es möglich, dass onBackPressed() 'nach der Task aufgerufen wird. Hast du meine Lösung versucht? Was genau funktioniert nicht? – thaussma
Ich habe es nicht Jet versucht, aber weil ich dachte, wenn die erste Anweisung Ihres Beispiels ausgeführt wird, stoppt die Ausführung der Tests dort und geht nur weiter, wenn die Aufgabe abgeschlossen ist. Wie auch immer, ich werde es versuchen – Apperside