Вложенная функция Expect () с BDD Jasmine не оценивает - PullRequest
0 голосов
/ 18 июля 2011

У меня есть следующий контекст и утверждение 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 Ответ

1 голос
/ 19 июля 2011

Ваш it() завершает работу до того, как ваш запрос вернет ответ.С жасмином вы должны думать об асинхронных событиях немного сложнее.

Проверьте 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() ожидает, что он будет в конечном итоге удовлетворен.

...