2010-06-28 4 views
32

J'utilise CoffeeScript dans une application Rails, et je voudrais tester l'unité. Google n'a rien trouvé, y at-il un moyen de le faire à court d'écrire mon propre framework de test ou de tester le JavaScript généré par CoffeeScript?Tests unitaires CoffeeScript?

Répondre

23

Vous pouvez utiliser n'importe quel framework de test javascript avec CoffeeScript. Cela testera le Javascript que les sorties de CoffeeScript sont nécessaires puisque CoffeeScript lui-même ne peut pas être exécuté. Ecrire votre propre cadre de test pour CoffeeScript est amusant (I did) mais entièrement inutile.

MISE À JOUR: Jasmine Les tests peuvent être run on node.js auquel cas les tests et le code à l'essai peuvent tous deux être CoffeeScript, sans nécessiter d'étape de compilation.

+1

Merci pour la réponse. J'ai décidé d'aller avec QUnit pour le moment. J'ai dû écrire un peu de code de colle pour faire fonctionner ma page de test, mais ça va. –

+1

Il y a aussi un Coffee-Spec qui est spécifiquement pour CoffeeScript. Je pense que la plupart des gens (y compris moi-même) utilisent des frameworks de tests unitaires JavaScript comme vous l'avez fait. (J'utilise Jasmine.) – RJHunter

+0

J'ai trouvé cette page où il est écrit que vous pouvez écrire jasmine comme coffeescript et cela fonctionnera http://coffeescript-cookbook.github.io/chapters/testing/testing_with_jasmine. Savez-vous si seulement coffeescript (et Nodeunit) fonctionnera ou s'il est possible d'écrire un cadre de test comme code café? –

9

Vous pouvez utiliser QUnit tel quel, mais toujours écrire du café et pas de code de collage.
J'ai un très petit projet de script de café pur sur github comme exemple - rubyann.

La page de test HTML rubyann_tests.html fait référence au fichier rubyann_tests.coffee qui teste jquery.rubyann.coffee. Je n'ai pas écrit de javascript ou de tout autre code pour faire ce travail.

Les tests s'exécutent uniquement sur Chrome sur votre ordinateur local si vous utilisez l'argument de ligne de commande --allow-file-access-from-files. Mais cela fonctionne sur Firefox et même IE sans problèmes.

+0

Merci, j'ai appris sur les tags texte/coffeescript! –

1

Je teste CoffeeScript dans mon application Rails avec QUnit, et ont rédigé ce que je fais ici: http://effectif.com/coffeescript/qunit-boilerplate

La chose la plus intéressante dans mon écriture-up est l'utilisation de la fonction de rappel à café .load pour garantir que les fichiers contenant des tests se charger après les fichiers qui contiennent le code sous test:

<script type="text/coffeescript"> 
    for file in ['models', 'controllers']            
    lib = "../../app/assets/javascripts/#{file}.js.coffee"       
    load_test = ->                 
     test = "#{file}_test.coffee"             
     -> CoffeeScript.load(test)              
    CoffeeScript.load lib, load_test() 
</script> 

la nécessité de taitement la variable test est expliqué dans l'article ...

0

pour le café-Script Unité test, vous pouvez essayer Beast-Test il a été écrit à partir de la base pour le café-script. Pour info je suis le propre mais je pense que vous l'aimerez néanmoins. Il est similaire à JUnit