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 LocalSdkBuildProvider i SdkAvdPreparer.
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.