2010-06-28 34 views
32

我在Rails應用程序中使用CoffeeScript,我想單元測試它。谷歌沒有提出任何問題,有沒有什麼辦法可以做到這一點:編寫我自己的測試框架或測試CoffeeScript輸出的JavaScript?CoffeeScript單元測試?

回答

23

您可以使用任何JavaScript測試框架與CoffeeScript。這將測試CoffeeScript輸出的JavaScript,因爲CoffeeScript本身無法執行,所以這是必需的。

爲CoffeeScript編寫自己的測試框架很有趣(I did),但完全沒有必要。

UPDATE:Jasmine測試可以是run on node.js在這種情況下,測試和被測試代碼都可以是CoffeeScript,而不需要任何編譯步驟。

+1

感謝您的回答。我現在決定和QUnit一起去。我不得不寫一點膠水代碼來讓我的測試頁面正常運行,但這沒關係。 – 2010-06-29 03:10:54

+1

還有一個專門用於CoffeeScript的Coffee-Spec 。我認爲大多數人(包括我自己)只是像你所做的那樣使用JavaScript單元測試框架。 (我使用茉莉花。) – RJHunter 2010-12-29 07:59:28

+0

我發現這個網頁,它說你可以寫茉莉花作爲咖啡標,它會工作http://coffeescript-cookbook.github.io/chapters/testing/testing_with_jasmine。你知道是否只有coffeescript(和Nodeunit)可以工作,或者如果可以將任何測試框架編寫爲coffeescript代碼? – 2015-12-02 12:49:11

9

您可以按原樣使用QUnit,但仍然只寫咖啡腳本 - 並且不使用膠水代碼。
我在github上有一個很小的純咖啡腳本項目 - rubyann

HTML測試頁rubyann_tests.html,引用rubyann_tests.coffee文件,其中測試jquery.rubyann.coffee。我沒有寫任何JavaScript或任何其他代碼來使這項工作。

如果您使用命令行參數--allow-file-access-from-files,則測試僅在本地計算機上的Chrome上運行。但它適用於Firefox甚至IE,沒有問題。

+0

謝謝,我瞭解了text/coffeescript標籤! – 2011-01-19 23:20:00

1

我與QUnit我的Rails應用程序測試的CoffeeScript,並已寫了,我怎麼會在這裏做:http://effectif.com/coffeescript/qunit-boilerplate

在我寫起來最有趣的事情是利用回調咖啡.load保證包含的測試文件會包含在測試代碼中的文件後,加載:

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

的需要討好的test變量在文章中解釋...

0

咖啡腳本單位測試你可以嘗試Beast-Test它是從頭開始寫的咖啡劇本。僅供參考我是自己的,但我認爲你會喜歡它。它類似於JUnit