Jasmine在测试之前调用

时间:2012-06-25 14:58:05

标签: javascript unit-testing coffeescript jasmine

我正在编写一个Rails应用程序,其中包含以下茉莉花规范:

describe "buttons", ->

  beforeEach ->
    loadFixtures("foo.html")
    alert("beforeEach: " + $("tr.foo").length)

  describe ".hide_foo", ->
    alert(".hide-foo: " + $("tr.foo").length)
    ...
    expect($("tr.foo")).toBeHidden()

规范因错误而失败:

TypeError: Cannot call method 'expect' of null

所以我提出警报。首先我们看到“.hide-foo:0”,然后在我关闭之后“beforeEach:44”出现。很明显错误是因为我们在加载灯具之前调用expect但是...为什么在每个示例之前没有beforeEach执行

我正在使用jasminerice来使用Rails Asset Pipeline来编译我的Coffeescript。版本:

$ bundle show jasmine && bundle show jasminerice
/home/tmacdonald/.rvm/gems/ruby-1.9.2-p320/gems/jasmine-1.2.0
/home/tmacdonald/.rvm/gems/ruby-1.9.2-p320/gems/jasminerice-0.0.9

谢谢!

1 个答案:

答案 0 :(得分:6)

describe块不应该直接在其中包含测试逻辑。您应该将所有测试逻辑放在it块中。

describe ".hide_foo", ->
    it 'should hide the row', ->
        alert(".hide-foo: " + $("tr.foo").length)

        expect($("tr.foo")).toBeHidden()