4

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

这是测试(使用猫鼬):

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

4

2 回答 2

3

这对我有用

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

创建 fix_my_iced_tests.js

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

创建 test/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

--- 已编辑 ---

在这里找到更好的选择

mocha --compilers coffee:iced-coffee-script/register
于 2015-09-26T18:20:32.260 回答
0

不确定这是否仍然相关,但现在是 2015 年,Node.js 对 Promises 和 Generators 提供一流的支持,这使您能够编写与 IcedCoffeeScript一样简洁和优雅的代码,但皱纹少了很多。

于 2015-04-08T00:07:29.717 回答