Frage

Ich schreibe einen UI-Test mit Google Espresso für Android, und ich bin festgefahren, wie ein TextView-Text geltend gemacht wird, in dem der Inhalt asynchron aus einem Web-Service geladen wird.Mein aktueller Code lautet:

generasacodicetagpre.

Ein (1) Ich informiere meine Aktivität, um ein Element aus dem Webservice zu laden.Auf (2) warte ich darauf, dass der Ansicht seinen Inhalt geltend macht.Dies ist der Teil, an dem der Test fehlschlägt, da er ausführt, bevor der Webservice die App beantwortet.

Wie kann ich Espresso sagen, um zu warten, bis ein bestimmtes Datenbild auf dem Bildschirm angezeigt wird?Oder sollte ich auf eine andere Weise denken, um einen solchen Test zu schreiben?

War es hilfreich?

Lösung

Sie können diesen Fall umgehen, indem Sie eine IDLingResource für Ihren Webdienst mit Espresso registrieren.Schauen Sie sich dieses Mal an: https://developer.android.com / training / testing / espresso / idling-ressource.html

Am wahrscheinlichsten möchten Sie countingidlingresource (das einen einfachen Zähler zum Nachlauf verwendet, wenn etwas im Leerlauf ist).Dies Mustertest zeigt, wie dies getan werden kann.

Andere Tipps

Wenn Sie sich nicht mit dem UiAutomator mit Espresso anüsten, können Sie in Ihrem Schritt 4 so etwas tun.

generasacodicetagpre.

https:// Entwickler.android.com/reference/android/support/test/uiautomator/uiobject.html#waitforexists(Long)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top