2010-06-28 32 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