-->

vendredi 25 mai 2012

Ecriture des tests automatisés suite à la mise en place du template de projet


Suite à la mise en place du template de projet pour les tests, cela implique quelques modifications dans l'écriture des tests automatisés, voici donc les principaux changements.

Pour rappel: l'architecture du template qui a été mis en place à partir du précédent post est la suivante:




Couverture d'un nouvel ensemble fonctionnel

Nous allons créer un fichier ui test Map pour chaque ensemble fonctionnel.
A chaque ajout de fichier UI test Map, il faut impérativement penser à ajouter  les propriétés dans le TestRunner



Héritage de la classe de base

L'héritage de cette classe de base va nous permettre de récupérer tout le contexte et les constructeurs de base du projet de test



Appel des actions des différents Ui test map depuis les tests

TestRunner.Navigation.Click_MonAction();


Factorisation de code

Afin d'éviter de réécrire systématiquement les mêmes actions, lorsque nous avons des enchainement d'actions qui sont réutilisées à plusieurs reprise, nous avons tout intérêt à factoriser ce code.
Nous avons alors 2 possibilités:
  1. Si la fonction factorisée est utilisée dans toute l'application (ex: ouverture navigateur puis logue de l'utilisateur), la fonction devra alors être factorisée dans la classe "CodedUiTestCommons"
Appel d'une fonction commune à toute l'application:
CodedUiTestCommons.NomFonction();

  1. Si la fonction factorisée est utilisée uniquement dans un ensemble fonctionnel, nous créerons alors une classe "Common" dans l'ensemble fonctionnel approprié et la fonction devra alors être factorisée dans cette classe.
Dans le cas ou nous créons une classe "Common" dans un ensemble fonctionnel, il y a deux étapes à ne pas oublier:
  • Notre classe Test1 n'héritera pas de la classe CodedUiTestBase mais de la classe "Common" que nous venons de créer, et la classe "Common" devra elle-même hériter de la classe CodedUiTestBase .
  • Passer le contexte en paramètre:
exemple de déclaration de fonction dans "Common": public static void Ma_Fonction(CodedUiTestBase instance)
Appel de la fonction dans le test: common.Ma_Fonction(this);

Conclusion

Le projet est maintenant en place et simplement utilisable, nous verrons maintenant dans des prochains post comment optimiser le code pour améliorer les performances et la maintenabilité.

Aucun commentaire:

Enregistrer un commentaire