2010-06-28 3 views
32

Sto usando CoffeeScript in un'applicazione Rails e vorrei testarlo unitamente. Google non ha mostrato nulla, c'è un modo per farlo a meno di scrivere il mio framework di test o testare il codice JavaScript che viene emesso da CoffeeScript?Test dell'unità CoffeeScript?

risposta

23

È possibile utilizzare qualsiasi framework di test javascript con CoffeeScript. Questo testerà i Javascript che CoffeeScript emette, che è necessario dal momento che CoffeeScript non può essere eseguito.

Scrivere il proprio framework di test per CoffeeScript è divertente (I did) ma completamente inutile.

AGGIORNAMENTO: Jasmine test possono essere run on node.js nel qual caso sia i test che il codice in prova possono essere CoffeeScript, senza la necessità di alcuna fase di compilazione.

+1

Grazie per la risposta. Ho deciso di andare con QUnit per ora. Ho dovuto scrivere un po 'di codice per incollare la mia pagina di test, ma va bene. –

+1

C'è anche una specifica per il caffè che è specifica per CoffeeScript. Penso che la maggior parte delle persone (incluso me stesso) utilizzi solo framework di test delle unità JavaScript come hai fatto tu. (Uso Jasmine.) – RJHunter

+0

Ho trovato questa pagina in cui si dice che puoi scrivere gelsomino come coffeescript e funzionerà http://coffeescript-cookbook.github.io/chapters/testing/testing_with_jasmine. Sai se funzionerà solo coffeescript (e Nodeunit) o ​​se è possibile scrivere qualsiasi framework di test come codice coffeescript? –

9

È possibile utilizzare QUnit così com'è, ma scrivere solo caffè-script e nessun codice di colla.
Ho un piccolo, puro progetto di script per il caffè su github come esempio - rubyann.

La pagina di test HTML rubyann_tests.html fa riferimento al file rubyann_tests.coffee che esegue il test jquery.rubyann.coffee. Non ho scritto alcun javascript o altro codice per farlo funzionare.

I test vengono eseguiti su Chrome sul computer locale solo se si utilizza l'argomento della riga di comando --allow-file-access-from-files. Funziona su Firefox e persino IE senza problemi.

+0

Grazie, ho imparato a conoscere tag di testo/coffeescript! –

1

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 al caffè .load per garantire che i file contenenti i test vengono caricati dopo che i file che contengono il codice in prova:

<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 ...

0

per caffè-script unità test puoi provare Beast-Test è stato scritto da zero per coffee-script. FYI sono il proprietario, ma penso che ti piacerà comunque. È simile a JUnit