Trade Federation utilizza un'astrazione chiamata
ITestDevice
per eseguire i test. Questa astrazione oggettivizza il dispositivo Android con il minimo comune denominatore:
- Ha un numero di serie
- Ha uno stato: Online, Disponibile, Recupero o Non disponibile
- Ha una certa idea di affidabilità. Ad esempio, se eseguiamo un comando, possiamo distinguere tra il caso in cui il comando non sia ancora terminato, il caso in cui il dispositivo non supporti l'esecuzione di comandi e il caso in cui il dispositivo non risponda durante l'esecuzione del comando.
Classi di dispositivi
Le tre implementazioni principali di ITestDevice
rappresentano tre use case comuni.
Dispositivo fisico
Si tratta di un vero e proprio hardware, collegato alla macchina host TF tramite USB o utilizzando la funzionalità TCP di adb. La classe TestDevice si basa sulla libreria ddmlib, che è un'interfaccia Java per adb. Pertanto, qualsiasi dispositivo fisico elencato in adb devices
può essere istanziato e utilizzato come TestDevice
.
Emulatore
Gli emulatori vengono gestiti in modo speciale da TF perché si trovano in un altro processo. Per interagire con un
emulatore, specifica l'argomento --emulator
per il comando. Per ulteriori informazioni, consulta
LocalSdkBuildProvider e
SdkAvdPreparer.
Nessun dispositivo
Supponiamo che tu abbia un test che non interagisce affatto con un dispositivo. Ad esempio, potrebbe semplicemente scaricare un file da un servizio e verificare che il file stesso sia valido. NullDevice è un ITestDevice
che è solo uno stub. Ha un numero di serie come
null-device-N
e la maggior parte delle operazioni tentate non viene eseguita in silenzio o genera un errore.