Trade Federation utilise une abstraction appelée ITestDevice
pour exécuter des tests. Cette abstraction objective l’appareil Android au plus petit dénominateur commun :
- Il a un numéro de série
- Il a un état : En ligne, Disponible, Récupération ou Non disponible
- Il a une certaine notion de fiabilité. Par exemple, si nous exécutons une commande, nous pouvons faire la différence entre le cas où la commande n'est pas encore terminée, le cas où l'appareil ne prend pas en charge l'exécution de commandes et le cas où l'appareil ne répond plus lors de l'exécution de la commande.
Classes d'appareils
Les trois principales implémentations d' ITestDevice
représentent trois cas d'utilisation courants.
Appareil physique
Il s'agit d'un véritable matériel, connecté à la machine hôte TF soit par USB, soit en utilisant la fonction TCP d'adb. La classe TestDevice se trouve au sommet de la bibliothèque ddmlib, qui est une interface Java pour adb. Ainsi, tout périphérique physique répertorié dans adb devices
peut être instancié et utilisé comme TestDevice
.
Émulateur
Les émulateurs sont gérés spécialement par TF car ils vivent dans un autre processus. Pour interagir avec un émulateur, spécifiez l'argument --emulator
pour la commande. Voir LocalSdkBuildProvider et SdkAvdPreparer pour plus d'informations.
Aucun dispositif
Supposons que vous disposiez d’un test qui n’interagit pas du tout avec un appareil. Par exemple, il peut simplement télécharger un fichier à partir d'un service et vérifier que le fichier lui-même est valide. Le NullDevice est un ITestDevice
qui n’est qu’un stub. Il a un numéro de série comme null-device-N
, et la plupart des tentatives d'opérations sont soit sans opération en silence, soit lancées.