jasmine + coffeescript - 茉莉花跳过测试

时间:2012-06-11 18:10:08

标签: javascript coffeescript jasmine

Jasmine正在跳过所有'it'测试,除了描述块中的最后一个 - 我在测试中使用coffeescript,我相信这可能就是原因。当我查看由我的.coffee测试创建的已编译的JS时,我发现只有最后一个'it'测试在它之前有'return'这个词,这可能是为什么其他测试被跳过的原因。

我的问题是,如何让它“返回”所有测试?

编译时的最后一次测试:

return it("should filter a range of prices", function() {

之前的那些是什么(这些被specrunner跳过):

it("should filter a specific price", function() {

1 个答案:

答案 0 :(得分:1)

我尝试以不同的方式填充集合,现在它可以正常工作。

跳过第一个测试时我的测试结果如何(specrunner说1个规格通过,0跳过此代码):

describe "Products Collection", ->
    it "should filter a specific price", ->
        products = new Wishlist.Collections.Products
        products.add({name: 'product1', price: 15.99})
        products.add({name: 'product2', price: 21.99})
        products.add({name: 'product3', price: 21.99})
        products.add({name: 'product4', price: 1.99} )
        match = products.where({price: 21.99})
        expect(match.length).toBe(2)

    it "should filter a range of prices", ->
        products = new Wishlist.Collections.Products
        products.add({name: 'product1', price: 15.99})
        products.add({name: 'product2', price: 21.99})
        products.add({name: 'product3', price: 21.99})
        products.add({name: 'product4', price: 1.99})
        expect(products.priceFilter(16,25).size()).toBe(2)

他们现在的样子(正常工作):

describe "Products Collection", ->
    it "should filter a specific price", ->
        products = new Wishlist.Collections.Products [{name: 'product1', price: 15.99}, {name: 'product2', price: 21.99}, {name: 'product3', price: 21.99}, {name: 'product4', price: 1.99}]
        match = products.where({price: 21.99})
        expect(match.length).toBe(2)

    it "should filter a range of prices", ->
        products = new Wishlist.Collections.Products
        products.add({name: 'product1', price: 15.99})
        products.add({name: 'product2', price: 21.99})
        products.add({name: 'product3', price: 21.99})
        products.add({name: 'product4', price: 1.99})
        expect(products.priceFilter(16,25).size()).toBe(2)

正如您所看到的,使用products.add()无法导致问题,因为它适用于第二次测试。我不知道为什么这很重要..