CoffeeScript 单元测试?
我在 Rails 应用程序中使用 CoffeeScript,我想对其进行单元测试。 Google 没有发现任何结果,除了编写我自己的测试框架或测试 CoffeeScript 输出的 JavaScript 之外,还有什么方法可以做到这一点吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以将任何 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.
您可以“按原样”使用 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
我正在使用 QUnit 在 Rails 应用程序中测试 CoffeeScript,并在这里写下了我的操作方法: http ://effectif.com/coffeescript/qunit-boilerplate
在我的文章中最有趣的事情是使用 Coffee.load 的回调来保证包含测试的文件在包含代码的文件之后加载under test:
文章中解释了柯里化
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:
The need for currying the
test
variable is explained in the article...对于 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