用IcedCoffeeScript编写Mocha测试?

时间:2013-06-27 14:12:44

标签: coffeescript mocha iced-coffeescript

我正在尝试在Mocha测试中运行一些数据库查询,但我遇到了一些问题。

这是测试(使用Mongoose):

it.only "should create some objects", (done) ->
  await models.MyModel1.count defer(err, oldModel1Count)
  await models.MyModel2.count defer(err, oldModel2Count)

  # ... do some stuff

  await models.MyModel1.count defer(err, newModel1Count)
  await models.MyModel2.count defer(err, newModel2Count)

  assert.equal oldModel1Count + 1, newModel1Count
  assert.equal oldModel2Count + 1, newModel2Count

运行测试的命令:

mocha --compilers coffee:iced-coffee-script --require iced-coffee-script --require mocha --colors --recursive test"

错误发生在第一行:

ReferenceError: err is not defined

我只能假设它正在尝试使用普通的CoffeeScript来执行此代码,因此它认为defer是一个函数并尝试评估err

是否可以在IcedCoffeeScript中编写Mocha测试?

2 个答案:

答案 0 :(得分:3)

这适合我 mocha --require ./fix_my_iced_tests.js --compilers coffee:coffee-script 创建fix_my_iced_tests.js 需要(“冰咖啡的脚本”)。注册() 创建test / some_test.coffee(这确保修复实际上有效) assert = require' assert' 描述'测试部分',() - >   它没关系,(已完成) - >     await setTimeout(defer next),100     assert.strictEqual(1,1)     完成()     返回   返回 你应该接受这样的事情   输入subdsl     √没问题(102ms)   1次传球(109ms) 没有修复你应该收到这样的东西 ReferenceError:next未定义 ---编辑--- 这里有更好的选择 mocha - 编译器咖啡:冰咖啡​​脚本/注册

答案 1 :(得分:0)

不确定这是否仍然相关,但现在是2015年,并且Node.js拥有对Promises和Generators的一流支持,这使您能够将代码exactly as concise and elegant编写为IcedCoffeeScript,但皱纹少得多