2013-06-27 171 views
4

我想在摩卡测试中运行一些数据库查询,但我遇到了一些问题。用IcedCoffeeScript写摩卡测试?

这里(用猫鼬)测试:

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测试?

回答

3

这对我的作品

mocha --require ./fix_my_iced_tests.js --compilers coffee:coffee-script 

创建fix_my_iced_tests.js

require('iced-coffee-script').register() 

创建测试/ some_test.coffee(这确保解决实际工作)

assert = require 'assert' 

describe 'test section',()-> 
    it 'is ok', (done)-> 
    await setTimeout (defer next), 100 
    assert.strictEqual(1, 1) 
    done() 
    return 
    return 

你应该收到这样的东西

Type subdsl 
    √ is ok (102ms) 


    1 passing (109ms) 

没有修复,你应该收到这样的事情

ReferenceError: next is not defined 

--- EDITED ---

更好的选择找到here

mocha --compilers coffee:iced-coffee-script/register 
0

不确定这是否仍然相关,但现在是2015年,而Node.js对承诺和生成器有一流的支持,使您可以将代码exactly as concise and elegant编写为IcedCoffeeScript,但皱纹少得多。