1

我正在尝试在 Windows 下的节点上运行 mocha。我也决定了为什么不把一些 CoffeeScript 放进去取乐。

describe 'Array', ->
  describe '#indexOf()', ->
    it 'should return -1 when not present' ->
      [1,2,3].indexOf(4).should.equal -1

问题是我遇到了一个错误:

C:\Users\ShaneC\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\coffee-script.js:51
      throw err;
            ^
Error: In C:\projects\BowlingKata\test\test.coffee, Parse error on line 3: Unexpected '->'
    at Object.parseError (C:\Users\ShaneC\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\parser.js:477:11)
    at Object.parse (C:\Users\ShaneC\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\parser.js:554:22)
    at C:\Users\ShaneC\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\coffee-script.js:43:20
    at Object..coffee (C:\Users\ShaneC\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\coffee-script.js:19:17)
    at Module.load (module.js:353:31)

这是我的 mocha.opts 文件:

--reporter spec
--ui bdd
-r should
--compilers coffee:coffee-script

关于我可能做错了什么的任何想法?我已经从http://net.tutsplus.com/tutorials/javascript-ajax/better-coffeescript-testing-with-mocha/复制了代码,没有人报告任何问题。

4

1 回答 1

2

假设您正在调用一个函数it,参数"should return -1 when not present",然后是一个检查它的函数,您需要用逗号分隔参数:

describe 'Array', ->
  describe '#indexOf()', ->
    it 'should return -1 when not present', ->
      [1,2,3].indexOf(4).should.equal -1

这编译为:

describe('Array', function() {
  return describe('#indexOf()', function() {
    return it('should return -1 when not present', function() {
      return [1, 2, 3].indexOf(4).should.equal(-1);
    });
  });
});
于 2012-06-22T14:22:23.887 回答