0

我有以下 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

当我打电话给 Ja​​smine 来评估规范时,它不会接受断言。我怎样才能让它拾取断言?

4

1 回答 1

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()希望最终得到满足。

于 2011-07-18T20:58:39.477 回答