Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing CoffeeScript单元测试?_Unit Testing_Coffeescript - Fatal编程技术网

Unit testing CoffeeScript单元测试?

Unit testing CoffeeScript单元测试?,unit-testing,coffeescript,Unit Testing,Coffeescript,我正在Rails应用程序中使用CoffeeScript,我想对其进行单元测试。谷歌没有发现任何东西,除了编写我自己的测试框架或测试CoffeeScript输出的JavaScript之外,还有其他方法可以做到吗 您可以将任何javascript测试框架与CoffeeScript一起使用。这将测试CoffeeScript输出的Javascript,这是必要的,因为CoffeeScript本身无法执行 为CoffeeScript编写自己的测试框架很有趣(),但完全没有必要 更新:测试可以是,在这种情况

我正在Rails应用程序中使用CoffeeScript,我想对其进行单元测试。谷歌没有发现任何东西,除了编写我自己的测试框架或测试CoffeeScript输出的JavaScript之外,还有其他方法可以做到吗

您可以将任何javascript测试框架与CoffeeScript一起使用。这将测试CoffeeScript输出的Javascript,这是必要的,因为CoffeeScript本身无法执行

为CoffeeScript编写自己的测试框架很有趣(),但完全没有必要

更新:测试可以是,在这种情况下,测试和测试中的代码都可以是CoffeeScript,而不需要任何编译步骤。

您可以按原样使用QUnit,但仍然只编写CoffeeScript,而不编写粘合代码。
例如,我在github上有一个非常小的纯咖啡脚本项目-

HTML测试页面引用了进行测试的文件。我没有编写任何javascript或任何其他代码来实现这一点

如果使用命令行参数“允许从文件访问文件”,则测试仅在本地计算机上的Chrome上运行。但它在Firefox甚至IE上都可以正常工作


附录-测试也设置为通过Node/gulp/qunitjs在命令行上运行-下载repo并键入
npm运行测试

我正在使用QUnit在Rails应用程序中测试CoffeeScript,并在这里写下了我的操作方法:

在我的撰写过程中,最有趣的事情是使用Coffee.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>

对于['models'、'controllers'中的文件
lib=“../app/assets/javascripts/{file}.js.coffee”
负载测试=->
test=“#{file}_test.coffee”
->CoffeeScript.load(测试)
CoffeeScript.load lib,load_test()

这篇文章解释了使用
测试
变量的必要性…

对于Coffee脚本单元测试,您可以尝试从头开始编写Coffee脚本。仅供参考,我是自己的,但我想你还是会喜欢的。它类似于JUnit

谢谢你的回答。我决定暂时和昆特一起去。我不得不写一些胶水代码来让我的测试页面运行,但没关系。还有一个专门针对CoffeeScript的CoffeeSpec。我认为大多数人(包括我自己)只是像你一样使用JavaScript单元测试框架。(我用的是茉莉花。)我找到了这个页面,上面写着你可以把茉莉花写成咖啡脚本,这样就行了。您知道是否只有coffeescript(和Nodeunit)可以工作,或者是否可以将任何测试框架编写为coffeescript代码?