嵌套的expect()函数与Jasmine BDD无法评估

时间:2011-07-18 12:46:41

标签: javascript node.js coffeescript jasmine

我有以下Jasmine上下文和断言:

it "should return a javascript file", ->
  # We make a request to /x.js
  request {uri: 'http://localhost:3000/x.js'}, (err, res, body) ->
    expect(res.statusCode).toEqual 200

当我打电话给Jasmine来评估规范时,它不会接受断言。我怎样才能让它获得断言?

1 个答案:

答案 0 :(得分:1)

在您的请求返回响应之前,您的it()正在退出。使用jasmine,你必须更加考虑异步事件。

检查waitsFor()并执行类似的操作,这将阻止您的规范退出,直到执行回调或默认超时时间已过。

it "should return a javascript file", ->
  responded = no
  request {uri: 'http://localhost:3000/x.js'}, (err, res, body) ->
    responded = yes
    expect(res.statusCode).toEqual 200

  waitsFor -> responded

如果服务器超时,这也会导致您的规范失败,因为每个waitsFor()最终都会得到满足。