Je suis curieux de savoir si cela serait précieux, j'aimerais commencer à utiliser Qunit , mais je ne sais vraiment pas où commencer. En fait, je ne vais pas mentir, je suis nouveau à tester en général, pas seulement avec JS. P>
J'espère avoir des conseils sur la manière dont je commencerais à utiliser des tests unitaires avec une application qui a déjà une grande quantité de JavaScript (ok donc environ 500 lignes, pas énorme, suffisez-moi pour me demander si j'ai la régression cela passe inaperçu). Comment recommanderiez-vous de commencer et où j'écrirais mes tests? p>
(par exemple, son application Rails, où est un endroit logique pour que mes tests JS, ce serait cool si elles pouvaient aller dans le répertoire / test>, mais c'est en dehors du répertoire public et donc pas possible ... err, c'est ça?) em> p>
5 Réponses :
Eh bien, commencez par Jsunit . On dirait que vous êtes plus curieux des tests unitaires en général, cependant. P>
Les choses que vous obtenez des tests unitaires (si elles sont finies correctement) sont les suivantes: p>
Les tests unitaires devraient essuyer essentiellement toucher toute méthode À bien des égards, vos tests doivent définir la fonctionnalité de vos méthodes. P>
Parfois, lorsque les gens écrivent leurs tests de l'unité, ils "stuples" de manière intentionnelle tout code intégré (c'est-à-dire des appels de méthode qui renvoient d'autres données d'une base de données, d'un fichier ou d'une logique commerciale) et de leur rendre les données statiques de retour. Cela vous aide à vous sentir plus confiant que vous ne testez que le code présent dans la logique que vous testez. P>
Vous voudrez peut-être
Pas de problème, et bonne chance! Les tests unitaires peuvent se sentir un peu bizarre lorsque vous le faites pour la première fois, mais cela peut certainement vous aider à garder votre code dans l'ordre de fonctionnement si vous le faites correctement.
Je suggérerais également de lire le livre «Travailler efficacement avec le code hérité» par Martin Plumes, pour les idées de test général et permettant de tester et de modifier le code qui est déjà là (comme apposé au développement axé sur le test - TDD, qui commence par les tests. et remplit le code).
L'un des meilleurs guides que vous pouvez trouver sur l'incorporation des tests dans l'ancien code est Travailler efficacement avec le code hérité . Dans votre cas, vous n'avez pas de grand nombre de code que vous devez vous inquiéter. Il suffit de commencer à le mettre dans la mesure où vous pouvez et réfléchissez à la manière dont vous pouvez structurer votre code pour permettre des tests en général. P>
Test directement JavaScript n'est pas trivial (car il a besoin d'un interprète "extérieur", lequel dans la production env est le navigateur). Il est également difficile de le faire comprendre dans votre environnement continu-intégration. P>
Ainsi, parce que les tests d'unité JavaScript sont très élevés, j'aurais tendance à tester des trucs plus grossiers à des tests d'intégration. Par exemple: CANOOO-webTest intègre un interpréteur Java-Script. Vous fausses actions d'utilisateur (par exemple, cliquez sur le bouton) et le JavaScript est déclenché. Donc, vous testez indirectement. P>
Toujours il y a quelques éléments javascript liés à l'interface utilisateur (E.G. FADE-Effects), etc. Ceci doit être testé manuellement. P>
Avec des rails, je recommanderais Blue Ridge . C'est un emballage de Toughsit, des tâches de râteau, ainsi que la possibilité de lancer des tests hors navigateur (via Rhino). Nous avons assez quelques tests JavaScript et allons. Les tests sont plus similaires à la RSPEC que les autres outils mentionnés, il est donc moins de changement d'état d'esprit ... fonctionne bien! P>
Pour commencer, le meilleur endroit à faire est de commencer à piquer sur le Web pour d'autres personnes qui ont réussi avec cela. Il y a des exemples sur GitHub. P>
J'ai trouvé des tests unitaires avec JavaScript pour être très utile. Les tests unitaires compenseront le manque de sécurité de type dans la langue. Il vous permet également de vérifier rapidement votre code en cours d'exécution dans différents navigateurs. P>
Pour mes tests, j'utilise Qnit comme coureur de test et JSMock pour la moqueur. J'utilise Firebug pour les déboguer. P>
Il y a moins de ressources éducatives pour les essais d'apprentissage dans JavaScript puis dire C # ou Java. Les choses sont testées différemment parce que c'est une langue dynamique ... il peut être préférable de commencer à tester en C # ou à Java. P>
Je ne suis pas vraiment devenu efficace à la rédaction des tests unitaires jusqu'à ce que je lisais le matériel sur www.xunitpatterns.com. Donc, si vous commencez à commencer, je dirais acheter le livre et le lire. p>
Mise à jour: Maintenant, je recommanderais d'utiliser Jasmine au lieu de Qunit, voir pivotal.github.com/jasmine
Par curiosité, pourquoi Jasmine au lieu de Qunit?
Quelques raisons: la configuration / la déchirure est beaucoup plus lisse et flexible. Les espions travaillent bien pour la modification des dépendances ...
500 lignes n'est rien, au fait. : P
Yah je sais, mais je veux certainement la chasser avant de ne pas dépasser le contrôle ... vous savez.
Absolument. Bonne chance, le code de Wrangling est comme des chats d'élevage parfois.
Vérifiez également que ce blog post Out qui décrit le développement axé sur le test avec JavaScript, je pense que c'est assez agréable [ msdn.microsoft.com/en-us/scriptjunkie/ff452703 ]