Automatisation du cas de test d’unité Android: Bibliothèque Robolecsortingc vs cadre de test Android

Vous vous demandez quel est le meilleur choix pour écrire des cas de tests unitaires pour les applications et bibliothèques Android: Utilisation de la bibliothèque Robolecsortingc ou application du framework de test Android. Je veux lancer une suite de tests sur la ligne de commande et vouloir qu’elle soit indépendante de la configuration de l’émulateur ou de la connexion d’un périphérique avec une machine de génération. Est-ce que quelqu’un parmi vous fait une parsing comparative de ces deux éléments ou de quelque chose de mieux? Vos expériences me seront d’une grande aide pour décider de la meilleure solution.

J’utilise un système à plusieurs niveaux, où je préfère les niveaux plus anciens dans la mesure du possible:

  1. Tests unitaires purs. J’essaie de rendre le plus possible le code totalement indépendant des API Android, puis d’utiliser des tests unitaires “purs” pouvant être exécutés sur n’importe quelle JVM. Ces tests sont les plus rapides et permettent de conserver un code qui n’a pas besoin d’être portable spécifique à Android.
  2. Tests unitaires supportés par robot Là où mon code n’a que de petites dépendances sur les API Android, ce qui peut être satisfait par les ombres robotiques, je le teste avec Robolecsortingc. Il y a un peu plus de temps d’installation pour Robolecsortingc par rapport aux tests purs, mais c’est encore plus rapide que de démarrer / exécuter sur un émulateur.
  3. Tests de framework Android. Là où Robolecsortingc ne le coupe pas – soit parce que les ombres n’existent pas, soit parce que j’utilise beaucoup les API Android (et donc je veux tester avec le Real Thing) – j’écris le test qui s’exécute sur l’émulateur / le périphérique avec le cadre par défaut.

Le but de ces niveaux est de garder les choses aussi simples que possible, ce qui permet de garder la suite complète plus rapidement et de promouvoir un code plus propre.

J’ai travaillé sur les deux, ce que j’ai trouvé est: –

1) Robolecsortingc ne prend pas en charge l’API 19, il en est fait mention dans son document – http://robolecsortingc.org/eclipse-quick-start/ . C’est un grand inconvénient de cela.

2) Exécution robotisée sur JVM pas sur DVM. Nous ne pouvons donc pas détecter que, à ce moment-là, le GPS est activé ou non sur l’appareil, etc. Nous ne pouvons que transmettre notre valeur pré-déterminée.

3) L’écriture de code dans Robolecsortingc est complexe que celle de junit spécialement pour fragment, il y a beaucoup de complexité et de problèmes.

4) Robolecsortingc a besoin de jar et de configuration externes et pour le test de Junit, nous n’avons besoin d’aucune bibliothèque externe.

5) Robolecsortingc est plus rapide car il fonctionne sur JVM mais cela a aussi un inconvénient, nous ne pouvons pas voir l’interface utilisateur sur notre appareil, quel code d’écran est en cours d’exécution.

Pour Android, j’aime le test jUnit.