A Trade Federation usa uma abstração chamada ITestDevice
para executar testes. Essa abstração objetiva o dispositivo Android de menor denominador comum:
- Tem um número de série
- Tem um estado: Online, Disponível, Recuperação ou Não Disponível
- Tem alguma noção de confiabilidade. Por exemplo, se executarmos um comando, podemos diferenciar entre o caso em que o comando ainda não foi concluído, o caso em que o dispositivo não suporta comandos em execução e o caso em que o dispositivo parou de responder ao executar o comando.
Classes de dispositivos
As três implementações principais de ITestDevice
representam três casos de uso comuns.
Dispositivo físico
Esta é uma peça real de hardware, conectada à máquina host do TF por USB ou usando o recurso TCP do adb. A classe TestDevice fica no topo da biblioteca ddmlib, que é uma interface Java para adb. Portanto, qualquer dispositivo físico listado em adb devices
pode ser instanciado e usado como TestDevice
.
Emulador
Os emuladores são manipulados especialmente pelo TF porque vivem em outro processo. Para interagir com um emulador, especifique o argumento --emulator
para o comando. Consulte LocalSdkBuildProvider e SdkAvdPreparer para obter mais informações.
Nenhum dispositivo
Suponha que você tenha um teste que não interage com um dispositivo. Por exemplo, ele pode baixar um arquivo de algum serviço e verificar se o arquivo em si é válido. O NullDevice é um ITestDevice
que é apenas um stub. Ele tem um número de série como null-device-N
, e a maioria das operações tentadas é no-op silenciosamente ou lança.