0
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 阻塞吗?

4

1 回答 1

1

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

describe 'TheObject', ->
  before (done) ->
    console.log 'loading text'
    fs.readFile('../data/data.json', 'utf8', (err, data) ->
      text = data
      done()
    )
于 2013-01-14T19:45:08.600 回答