Quoi de neuf dans YUI test 3.0.0

Décembre 10, 2009 à 09:07 par Nicolas C. Zakas | En développement | Comments Off

Nicholas C. Zakas rejoint Yahoo! en 2006. Il est l'auteur de Professional Ajax et JavaScript professionnelle pour les développeurs Web . Son développement piloté par les tests de présentation est un de plusieurs de Nicholas sur YUI Theater .

Une nouvelle version de YUI test accompagné la sortie de YUI 3.0.0 . Test de YUI pour la 3.0.0 est plus que juste un portage de la version 2.x-compatible de test YUI, toutefois, l'introduction de plusieurs nouvelles fonctionnalités. Celles-ci ont vu le jour à la suite de demandes des développeurs et des conversations que j'ai eues avec ceux qui utilisent déjà l'outil.

Promotion de simulation à événements

Simulation de l'événement a été initialement introduit dans la version 2.x de YUI test via le YAHOO.util.UserAction objet. Comme il s'est avéré, les développeurs vraiment aimé cette fonctionnalité et trouvé des utilisations pour elle en dehors de l'environnement de test. En conséquence, l'outil de simulation d'événements ont été promus à un membre de première classe de l' utilitaire de YUI 3.0.0 événement , accessible dans une seule méthode, Y.Event.simulate() . Vous pouvez inclure la composante de simulation d'événements en passant "event-simulate" dans la YUI().use() méthode:

  YUI (). Utiliser («événement-simulation", function (Y) {
     Y.Event.simulate ("# noeud", "clic",
                      {ClientX: 25, clientY: 30});
 }); 

Les objets fantaisie

YUI YUI 3.0.0 Test de introduit une nouvelle fonctionnalité: la création d'objets fantaisie. Les objets fantaisie sont utiles pour isoler vos tests unitaires de dépendances. Dans les systèmes logiciels complexes, il ya souvent un certain nombre de pièces qui reposent sur l'autre. Le problème devient alors d'isoler la partie du système a échoué quand quelque chose va mal.

Par exemple, supposons que vous avez une méthode appelée logToServer() qui est de créer un XMLHttpRequest objet et envoyez un message au serveur. Si votre test inclut l'objet XHR réel dans une tentative pour tester la fonctionnalité, vous avez deux dépendances majeures: l'objet XHR lui-même et le serveur. Si l'une de ces deux dépendances échouent, alors le test échoue, même si ce n'est pas votre code qui est en faute. En utilisant un objet XHR maquette, vous pouvez tester le code dans l'isolement et garantir que cela fonctionne. Par exemple:

  / / Créer un nouvel objet maquette
 var = Y. mockXhr Mock (); 

 / / Je m'attends de la méthode open () pour être appelé avec les arguments fournis
 Y.Mock.expect (mockXhr, {
     méthode: «ouvert»,
     args: ["? / log.php msg = salut" "get", true]
 }); 

 / / Je pense que le méthode send () d'être appelé avec les arguments fournis
 Y.Mock.expect (mockXhr, {
     méthode: «envoyer»,
     args: [null]
 }); 

 / / Maintenant appeler la fonction
 logToServer ("salut", mockXhr); 

 / / Vérifier les attentes ont été satisfaites
 Y.Mock.verify (mockXhr); 

Cet exemple crée un objet XHR maquette qui est utilisée au lieu d'un objet XHR régulière. Une fois toutes les opérations ont été achevées, le code vérifie que les méthodes de s'attendre à ce que furent appelés. Le test de simulation YUI objet API est volontairement minimal pour être aussi clair et utile que possible. Pour en savoir plus sur les objets fantaisie dans Test YUI, s'il vous plaît voir le document .

Noms de test amical

YUI test d'abord utilisé la xUnit style de méthodes d'essai permettant le nom de chaque méthode de test doit commencer par test . Test de YUI pour la 3.0.0 va encore plus loin, vous permettant de spécifier les noms de test amical dans les noms supplémentaires xUnit style. Noms sont bienvenus peines plus qu'autre chose, et la seule restriction est que le nom contient au moins un espace et le mot «devrait». Par exemple:

  var = new TestCase Y.Test.Case ({ 

     nom: "Nom TestCase», 

     / / Le nom du test xUnit style
     testSomeFunction: function () {

     },

     / / Amical nom test
     "Quelque chose doit se produire ici": function () {
         ...
     }
 }); 

Noms de test amical vous permettent de décrire la fonctionnalité testée de manière plus lisible. Ecrire une phrase telle que "méthode doit retourner quatre fois adopté 2 et 2", et avoir qui apparaissent dans les résultats du test, il est plus facile à interpréter les résultats du test et quoi d'autre doit être abordée.

Quelle est la prochaine?

YUI test continue d'évoluer et de grandir en tant rétroaction est reçu par les développeurs. Il ya actuellement plusieurs fonctions dans les travaux:

  • Plus de formats résultat du test, tels que JUnit XML et TAP.
  • Collecte de couverture de code et de reporting.
  • Automatisation des tests avec Selenium.

Si vous avez des idées ou commentaires, nous aimerions entendre parler de vous à YUILibrary.com , où vous pouvez déposer des demandes fonction ou de démarrer une discussion dans le forum . Avec votre aide, Test YUI peut continuer à évoluer pour répondre aux besoins de la communauté en constante évolution de développement web.

Partager et prolonger: Conservez ce lien avec del.icio.us | Digg it! | reddit!

Pas encore de commentaires

Désolé, les commentaires sont fermés pour le moment.

Hébergé par Yahoo!

Copyright © 2006-2012 Yahoo! Tous droits réservés. Politique de confidentialité - Conditions d'utilisation

Propulsé par WordPress sur Yahoo! Hébergement Web .