是否有人使用jasmine-given(https://github.com/searls/jasmine-given)来测试异步代码?
显然,图书馆支持它。但是,没有记录这样做的界面,从源代码中不清楚如何做到这一点。
答案 0 :(得分:0)
如果OP(或任何人)仍在此处查看,https://github.com/searls/jasmine-given的自述文件现在包含文档:
遵循Jasmine 2.0的样式来测试异步代码,Given和When语句'函数可以采用done参数,这是异步代码完成时调用的函数。后续的陈述不会被执行,直到完成完成。 E.g。
Given (done) -> $.get "/stuff"
.success (data) =>
@stuff = data
done()
When (done) -> $.post "/do", stuff: @stuff
.success (data) =>
@yay = true
done()
Then -> @stuff == "the stuff"
Then -> @yay
如果期望本身需要异步执行以评估,则Then和And语句函数也可以采用done参数。例如,如果您正在使用Selenium,则可能需要按预期检查浏览器状态:
Then (done) -> browser.find '.alert', (el) ->
expect(el).toBeDefined()
done()
And (done) -> browser.find '.cancel', (el) ->
expect(cancel).toBeDefined()
done()