Maison  >  Article  >  interface Web  >  Introduction détaillée au cadre de tests unitaires Javascript Compétences QUnitjs_javascript

Introduction détaillée au cadre de tests unitaires Javascript Compétences QUnitjs_javascript

WBOY
WBOYoriginal
2016-05-16 16:49:151401parcourir

1. Qu'est-ce que QUnit

QUnit (http://qunitjs.com/) est un framework de tests unitaires javascript très puissant qui peut vous aider à déboguer votre code. Il a été écrit par des membres de l'équipe jQuery et constitue la suite de tests officielle pour jQuery. Mais QUnit est généralement suffisant pour tester n'importe quel code javascript classique, et il peut même être possible de tester JavaScript côté serveur via certains moteurs javascript tels que Rhino ou V8.
Si vous n'êtes pas familier avec le concept de « tests unitaires », ne vous inquiétez pas. Ce n'est pas si difficile à comprendre :

Copiez le codeLe code est le suivant :

En programmation informatique, les tests unitaires (également connu sous le nom de tests de modules) est le travail de test visant à vérifier l'exactitude du module de programme (la plus petite unité de conception logicielle). Une unité de programme est le plus petit composant testable d’une application. En programmation procédurale, une unité est un programme, une fonction, un processus, etc. ; pour la programmation orientée objet, la plus petite unité est une méthode, y compris les méthodes des classes de base (superclasses), des classes abstraites ou des classes dérivées (sous-classes). — Cité de Wikipédia.


En termes simples, vous écrivez des tests pour chaque fonctionnalité de votre code, et si tous ces tests réussissent, alors vous pouvez être sûr que le code ne présente aucun défaut (généralement, encore une fois, cela dépend de la qualité de vos tests ) dépend complètement).


2. Pourquoi devriez-vous tester votre code

Si vous n'avez jamais écrit de tests unitaires auparavant, vous pouvez directement télécharger votre code sur le site Web, cliquer pendant un moment pour voir s'il y a des problèmes et essayer de résoudre les problèmes que vous rencontrez, en utilisant ceci Il y a beaucoup de problèmes avec la méthode.
Tout d’abord, c’est ennuyeux. Cliquer n'est en fait pas une tâche facile car vous devez vous assurer que tout est cliqué et il y a de fortes chances que vous en ayez manqué un ou deux.

Deuxièmement, tout ce que vous faites pour tester n'est pas réutilisable, ce qui signifie qu'il est difficile de régresser. Qu’est-ce que la régression ? Imaginez que vous écrivez du code, que vous le testez, que vous corrigez tous les défauts que vous trouvez, puis que vous le publiez. À ce stade, un utilisateur envoie des commentaires sur un nouveau bogue et nécessite de nouvelles fonctionnalités. Vous retournez dans le code, corrigez ces nouveaux défauts et ajoutez de nouvelles fonctionnalités. Ce qui peut arriver ensuite, c'est que certains défauts anciens réapparaissent. C'est ce qu'on appelle une « régression ». Vous voyez, vous devez maintenant cliquer à nouveau, et il y a de fortes chances que vous ne trouviez pas encore ces anciens bugs ; et même si vous le faites, il vous faudra un certain temps avant de comprendre que votre problème est causé par une régression. Avec les tests unitaires, vous écrivez des tests pour trouver des bogues, et une fois le code modifié, vous filtrez à nouveau les tests. Si une régression se produit, certains tests échoueront et vous pourrez facilement les identifier et savoir quelle partie du code contient l'erreur. Maintenant que vous savez ce que vous venez de modifier, cela peut être facilement corrigé.

Autre avantage des tests unitaires, notamment pour le développement web : ils facilitent les tests de compatibilité entre navigateurs. Exécutez simplement vos cas de test dans différents navigateurs. S'il y a un problème dans un navigateur, corrigez-le et réexécutez les cas de test pour vous assurer que cela ne provoque pas de régressions dans d'autres navigateurs. Une fois qu'ils ont tous réussi, vous pouvez en être sûr. Disons que tous les navigateurs cibles le prennent en charge.

Je voudrais mentionner un projet de John Resig : TestSwarm(http://testswarm.com/). Cela fait passer les tests unitaires Javascript au niveau supérieur en les rendant distribués, c'est un site Web avec de nombreux cas de test et n'importe qui peut y aller et exécuter des cas de test et les résultats sont renvoyés au serveur. De cette manière, le code peut être testé très rapidement dans différents navigateurs et même sur différentes plateformes.

3. Comment écrire des tests unitaires avec QUnit

Alors, comment écrire correctement des tests unitaires avec QUnit ? Tout d'abord, vous devez mettre en place un environnement de test :

Copiez le code Le code est le suivant :




    QUnit Test Suite
   
   
   
    < ;script type="text/javascript" src="myTests.js">


   

QUnit Test Suite


   


   

   


   




    正如你所见,在这里使用了一个被托管的QUnit框架版本。
    将要被测试的代码已被添加到 myProject.js 中Il s'agit d'un fichier myTest.js.了写些测试的时间了。
    单元测试的基石是断言:

    断言是一个命题,预测你的代码的返回结果。如果预测是假的,断言失败,你就知道出了问题。


    运行断言,你应该把它们放入测试案例:

    复制代码 代码如下 :

    // Testons cette fonction
    function isEven( val) {
        return val % 2 === 0;
    }

    test('isEven()', function() {
        ok(isEven(0), 'Zéro est un nombre pair');
        ok(isEven(2), 'Deux aussi') ;
        ok(isEven(-4), 'Donc moins quatre');
        ok(!isEven(1), 'Un n'est pas un nombre pair');
        ok(!isEven(- 7), 'Ni l'un ni l'autre n'est moins sept');
    })


    这里我们定义一个函数:isEven,并且我们希望测试这个函数来确认它不会返回错误答案。
    我们首先调用 test(),它构建了一个测试案例;的一个回调函数。
    我们写了5个断言,所有的都是布尔
    这里是你想要得到的,只要你运行测试:

    Introduction détaillée au cadre de tests unitaires Javascript Compétences QUnitjs_javascript

    四、深入学习参考

    http://api.qunitjs.com/
    单元测试是一个在你发布你的代码前测试你的代码的非常好的方法。如果你以前没有写过任何的单元测试,现在是时候开始了!

    Déclaration:
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn