2012-06-11 48 views
2

茉莉花跳過除了最後一個描述塊之外的所有'it'測試 - 我在測試中使用coffeescript,我相信這可能是原因。當我查看由我的.coffee測試創建的編譯後的JS時,我發現只有最後一個'it'測試在它之前有'return'這個詞,這可能是爲什麼剩下的測試會被跳過。jasmine + coffeescript - 茉莉花跳過測試

我的問題是,我怎樣才能讓它「返回」所有的測試?

最後的測試檢查什麼,當編譯這樣的:

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

什麼之前,它看上去像(這些由specrunner跳過)中的那些:

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

specrunner告訴我1規範通過時,實際上有2個規格。我修好了,但我不知道它爲什麼修復它。閱讀下面 –

回答

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()不會導致問題,因爲它在第二個測試中有效。我不知道爲什麼它很重要..

+1

我也沒有看到任何相關的變化。返回值無關緊要(因爲它是調用'it'來註冊測試而不是返回值)。旁註:您可以擺脫'products.add'調用中的圓括號,這可以提高可讀性(IMO)。 –