2013-06-27 227 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,但皺紋少得多。