如何让我的'before'函数让其他测试等待它的完成?

时间:2013-01-14 19:31:15

标签: node.js coffeescript mocha

describe 'TheObject', ->
  before ->
    console.log 'loading text'
    fs.readFile('../data/data.json', 'utf8', (err, data) ->
      text = data
    )
  describe 'simple', ->
    it 'should pass a simple test', ->
      b = "1"
      b.should.equal "1" 

我想这样做,以便在before操作中读取的文件完成之前,我的测试都不会运行。但这是异步世界,所以我认为它表现得像预期的那样。我能否以某种方式将所有其他测试都放入回调中?我可以强制readFile阻止吗?

1 个答案:

答案 0 :(得分:1)

异步时,您的before函数应该接受它在完成处理时调用的done回调参数:

describe 'TheObject', ->
  before (done) ->
    console.log 'loading text'
    fs.readFile('../data/data.json', 'utf8', (err, data) ->
      text = data
      done()
    )