CoffeeScript test di unità?
-
01-10-2019 - |
Domanda
sto usando CoffeeScript in un'applicazione Rails, e mi piacerebbe unità di prova esso. Google non si presentò mai, non v'è alcun modo per farlo a corto di scrivere il mio ambiente di test o test delle uscite che Javascript CoffeeScript?
Soluzione
È possibile utilizzare qualsiasi framework di test JavaScript con CoffeeScript. Questo proverà il JavaScript uscite CoffeeScript che è necessario in quanto CoffeeScript stessa non può essere eseguito.
Scrivere un proprio ambiente di test per CoffeeScript è divertente ( ho fatto ), ma interamente uneccessary.
UPDATE: Jasmine prove possono essere eseguito su node.js in tal caso, entrambe le prove e al codice in esame possono essere CoffeeScript, senza la necessità di qualsiasi fase di compilazione.
Altri suggerimenti
È possibile utilizzare QUnit "così come sono", ma ancora solo in scrittura coffee-script -. E senza colla codice
Ho un piccolo, puro progetto di caffè-script su github come un esempio -. rubyann
La pagina di prova HTML rubyann_tests.html , fa riferimento al file rubyann_tests.coffee quali test < a href = "https://github.com/PandaWood/jquery.rubyann/blob/master/src/jquery.rubyann.coffee" rel = "nofollow noreferrer"> jquery.rubyann.coffee . Non ho scritto alcun JavaScript o qualsiasi altro codice per fare questo lavoro.
I test eseguiti solo su Chrome sul computer locale se si utilizza l'argomento della riga di comando - permetterà-file-access-from-files . Ma funziona su Firefox e anche IE, senza problemi.
addendum - i test sono anche l'installazione per funzionare su linea di comando tramite node / Gulp / qunitjs - scaricare il repo e digitare npm run test
sto testando CoffeeScript nel mio Rails app con QUnit, e ho scritto su come sto facendo qui: http://effectif.com/coffeescript/qunit-boilerplate
La cosa più interessante a mio write-up è l'uso della richiamata per Coffee.load per garantire che i file contenenti i test vengono caricati dopo che i file che contengono il codice sotto 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>
Il bisogno di accattivarsi la variabile test
è spiegato in questo articolo ...
Per Caffè-Script Unità test si può provare a Bestia-Test è stato scritto da zero per caffè- script. PS: Sono il proprio, ma penso che ti piacerà comunque. E 'simile a JUnit