使用asas Done与jasmine-given的示例

时间:2014-09-08 13:19:35

标签: javascript jasmine bdd

是否有人使用jasmine-given(https://github.com/searls/jasmine-given)来测试异步代码?

显然,图书馆支持它。但是,没有记录这样做的界面,从源代码中不清楚如何做到这一点。

1 个答案:

答案 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()