Maison >interface Web >js tutoriel >Introduction détaillée au cadre de tests unitaires Javascript Compétences QUnitjs_javascript
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 :
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 :
断言是一个命题,预测你的代码的返回结果。如果预测是假的,断言失败,你就知道出了问题。
运行断言,你应该把它们放入测试案例:
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个断言,所有的都是布尔
这里是你想要得到的,只要你运行测试:
四、深入学习参考
http://api.qunitjs.com/
单元测试是一个在你发布你的代码前测试你的代码的非常好的方法。如果你以前没有写过任何的单元测试,现在是时候开始了!