Praca z urządzeniami w TF

Trade Federation używa abstrakcji o nazwie ITestDevice do przeprowadzania testów. Ta abstrakcja obiektywizuje urządzenie z Androidem o najniższym wspólnym mianowniku:

  • ma numer seryjny;
  • Stan: online, dostępny, odzyskiwanie lub niedostępny.
  • Ma pewien stopień niezawodności. Jeśli na przykład uruchamiamy polecenie, możemy odróżnić przypadek, w którym polecenie nie zostało jeszcze wykonane, od przypadku, w którym urządzenie nie obsługuje poleceń, oraz od przypadku, w którym urządzenie przestało odpowiadać podczas wykonywania polecenia.

Klasy urządzeń

3 główne implementacje ITestDevice odpowiadają 3 częstym przypadkom użycia.

Urządzenie fizyczne

Jest to urządzenie fizyczne połączone z hostem TF przez USB lub za pomocą funkcji TCP w adb. Klasa TestDevice znajduje się w bibliotece ddmlib, która jest interfejsem Java dla adb. Oznacza to, że każde fizyczne urządzenie wymienione w adb devices może zostać ucieleśnione i używane jako TestDevice.

Emulator

Emulatory są obsługiwane w specjalny sposób przez TF, ponieważ działają w ramach innego procesu. Aby korzystać z emulacji, podaj w komendzie argument --emulator. Więcej informacji znajdziesz w klasach LocalSdkBuildProviderSdkAvdPreparer.

Brak urządzenia

Załóżmy, że masz test, który w ogóle nie wchodzi w interakcję z urządzeniem. Może na przykład pobrać plik z jakiejś usługi i sprawdzić, czy jest on prawidłowy. NullDevice to ITestDevice, który jest tylko zastępnikiem. Ma numer seryjny w postaci null-device-N, a większość próbowanych operacji albo nie wykonuje żadnej operacji, albo powoduje wyjątek.