Federacja Handlowa używa abstrakcji o nazwie ITestDevice
do uruchamiania testów. Ta abstrakcja obiektywizuje urządzenie z systemem Android o najniższym wspólnym mianowniku:
- Ma numer seryjny
- Ma stan: Online, Dostępny, Odzyskiwanie lub Niedostępny
- Ma pewne pojęcie o niezawodności. Na przykład, jeśli uruchamiamy polecenie, możemy odróżnić przypadek, w którym polecenie jeszcze się nie zakończyło, przypadek, w którym urządzenie nie obsługuje uruchamiania poleceń, oraz przypadek, w którym urządzenie przestało odpowiadać podczas wykonywania polecenia.
Klasy urządzeń
Trzy podstawowe implementacje ITestDevice
reprezentują trzy typowe przypadki użycia.
Urządzenie fizyczne
Jest to rzeczywisty sprzęt podłączony do komputera hosta TF przez USB lub za pomocą funkcji TCP adb. Klasa TestDevice znajduje się na szczycie biblioteki ddmlib, która jest interfejsem Java do adb. Tak więc każde fizyczne urządzenie wymienione w adb devices
może być utworzone i używane jako TestDevice
.
Emulator
Emulatory są specjalnie obsługiwane przez TF, ponieważ żyją w innym procesie. Aby współdziałać z emulatorem, określ argument --emulator
dla polecenia. Zobacz LocalSdkBuildProvider i SdkAvdPreparer , aby uzyskać więcej informacji.
Brak urządzenia
Załóżmy, że masz test, który w ogóle nie wchodzi w interakcję z urządzeniem. Na przykład może po prostu pobrać plik z jakiejś usługi i sprawdzić, czy sam plik jest prawidłowy. NullDevice to ITestDevice
, który jest tylko skrótem. Ma numer seryjny, taki jak null-device-N
, a większość próbowanych operacji albo po cichu, albo wrzuca.