CoffeeScript 单元测试?

发布于 2024-09-06 21:32:34 字数 127 浏览 3 评论 0 原文

我在 Rails 应用程序中使用 CoffeeScript,我想对其进行单元测试。 Google 没有发现任何结果,除了编写我自己的测试框架或测试 CoffeeScript 输出的 JavaScript 之外,还有什么方法可以做到这一点吗?

I'm using CoffeeScript in a Rails application, and I would like to unit test it. Google didn't turn up anything, is there any way to do it short of writing my own testing framework or testing the JavaScript that CoffeeScript outputs?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

海未深 2024-09-13 21:32:34

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

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

更新:Jasmine 测试可以是在 node.js 上运行 在这种情况下,测试和被测代码都可以是 CoffeeScript,无需任何编译步骤。

You can use any javascript testing framework with CoffeeScript. This will be testing the Javascript that CoffeeScript outputs which is necessary since CoffeeScript itself can't be executed.

Writing your own testing framework for CoffeeScript is fun (I did) but entirely uneccessary.

UPDATE: Jasmine tests can be run on node.js in which case both the tests and the code under test can be CoffeeScript, without the need for any compilation step.

那小子欠揍 2024-09-13 21:32:34

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

HTML 测试页面 rubyann_tests.html 引用rubyann_tests.coffee 测试 jquery.rubyann.coffee。我没有编写任何 JavaScript 或任何其他代码来完成这项工作。

如果您使用命令行参数--allow-file-access-from-files,则测试仅在本地计算机上的 Chrome 上运行。但它可以在 Firefox 甚至 IE 上运行,没有任何问题。

附录 - 测试也设置为通过 Node/gulp/qunitjs 在命令行上运行 - 下载存储库并输入 npm run test

You can use QUnit "as-is", but still only write coffee-script - and no glue-code.
I have a very small, pure coffee-script project on github as an example - rubyann.

The HTML test page rubyann_tests.html, references the rubyann_tests.coffee file which tests jquery.rubyann.coffee. I didn't write any javascript or any other code to make this work.

The tests only run on Chrome on your local machine if you use the command-line argument --allow-file-access-from-files. But it works on Firefox and even IE without issues.

addendum - the tests are also setup to run on the command line via Node/gulp/qunitjs - download the repo and type npm run test

能怎样 2024-09-13 21:32:34

我正在使用 QUnit 在 Rails 应用程序中测试 CoffeeScript,并在这里写下了我的操作方法: http ://effectif.com/coffeescript/qunit-boilerplate

在我的文章中最有趣的事情是使用 Coffee.load 的回调来保证包含测试的文件在包含代码的文件之后加载under 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>

文章中解释了柯里化 test 变量的必要性...

I'm testing CoffeeScript in my Rails app with QUnit, and have written up how I'm doing it here: http://effectif.com/coffeescript/qunit-boilerplate

The most interesting thing in my write-up is the use of the callback to Coffee.load to guarantee that files containing tests get loaded after the files that contain the code under 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>

The need for currying the test variable is explained in the article...

岁月如刀 2024-09-13 21:32:34

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

For Coffee-Script Unit testing you can try Beast-Test it was written from the ground up for coffee-script. FYI i am the own but i think you will like it none the less. It is similar to JUnit

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文