Arbeiten Sie mit Geräten in TF

Trade Federation verwendet eine Abstraktion namens ITestDevice um Tests auszuführen. Diese Abstraktion objektiviert das Android-Gerät mit dem kleinsten gemeinsamen Nenner:

  • Es hat eine Seriennummer
  • Es hat einen Status: Online, Verfügbar, Wiederherstellung oder Nicht verfügbar
  • Es hat eine gewisse Vorstellung von Zuverlässigkeit. Wenn wir beispielsweise einen Befehl ausführen, können wir zwischen dem Fall unterscheiden, in dem der Befehl noch nicht abgeschlossen ist, dem Fall, in dem das Gerät die Ausführung von Befehlen nicht unterstützt, und dem Fall, in dem das Gerät während der Ausführung des Befehls nicht mehr reagiert.

Geräteklassen

Die drei primären Implementierungen von ITestDevice stellen drei häufige Anwendungsfälle dar.

Physisches Gerät

Hierbei handelt es sich um eine echte Hardware, die entweder über USB oder mithilfe der TCP-Funktion von adb mit dem TF-Hostcomputer verbunden ist. Die TestDevice- Klasse befindet sich auf der ddmlib-Bibliothek, einer Java-Schnittstelle zu adb. Daher kann jedes in adb devices aufgeführte physische Gerät instanziiert und als TestDevice verwendet werden.

Emulator

Emulatoren werden von TF speziell behandelt, da sie in einem anderen Prozess leben. Um mit einem Emulator zu interagieren, geben Sie das Argument --emulator für den Befehl an. Weitere Informationen finden Sie unter LocalSdkBuildProvider und SdkAvdPreparer .

Kein Gerät

Angenommen, Sie haben einen Test, der überhaupt nicht mit einem Gerät interagiert. Beispielsweise könnte es einfach eine Datei von einem Dienst herunterladen und überprüfen, ob die Datei selbst gültig ist. Das NullDevice ist ein ITestDevice , das nur ein Stub ist. Es hat eine Seriennummer wie null-device-N und die meisten versuchten Vorgänge sind entweder stillschweigend „No-Op“ oder „Throw“.