Lavorare con i dispositivi in TF

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.