Trade Federation utiliza una abstracción llamada ITestDevice
para ejecutar pruebas. Esta abstracción objetiva el dispositivo Android de mínimo común denominador:
- tiene un numero de serie
- Tiene un estado: En línea, Disponible, Recuperación o No disponible
- Tiene cierta noción de fiabilidad. Por ejemplo, si ejecutamos un comando, podemos diferenciar entre el caso en el que el comando aún no ha finalizado, el caso en el que el dispositivo no admite la ejecución de comandos y el caso en el que el dispositivo no responde mientras se ejecuta el comando.
Clases de dispositivos
Las tres implementaciones principales de ITestDevice
representan tres casos de uso comunes.
Dispositivo físico
Esta es una pieza de hardware real, conectada a la máquina host TF por USB o mediante la función TCP de adb. La clase TestDevice se encuentra encima de la biblioteca ddmlib, que es una interfaz Java para adb. Por lo tanto, se puede crear una instancia de cualquier dispositivo físico que aparezca en adb devices
y usarlo como TestDevice
.
emulador
Los emuladores son manejados especialmente por TF porque viven en otro proceso. Para interactuar con un emulador, especifique el argumento --emulator
para el comando. Consulte LocalSdkBuildProvider y SdkAvdPreparer para obtener más información.
Sin dispositivo
Suponga que tiene una prueba que no interactúa en absoluto con un dispositivo. Por ejemplo, podría simplemente descargar un archivo de algún servicio y verificar que el archivo en sí sea válido. El NullDevice es un ITestDevice
que es solo un stub. Tiene un número de serie como null-device-N
, y la mayoría de las operaciones intentadas no funcionan en silencio o se lanzan.