我對我目前的骨幹羣體之一寫茉莉花測試時真正得到一個惱人的錯誤,我認爲這不是我寫的測試,而不是做一些錯誤的,我javascript和茉莉的方式想告訴我那個。但我找不到解決方案。茉莉花測試骨幹,範圍界定麻煩
我得到了下面的簡化代碼,這將導致我們的問題
class Stuff extends Backbone.Collection
search: (str) ->
@trigger('search', @_filter(@_convertStrToArray(str)))
_convertStrToArray: (str) ->
str.toLowerCase().split()
_filter: (str_array) ->
@filter (stuff) ->
for _sub in str_array
... do something here
我想用茉莉花來測試,如果@_convertStrToArray方法被調用上執行@search。我得到了下面的測試(@stuff已在beforeEach聲明已成功創建!)
...
it "should call _convertStrToArray", ->
spyOn(@stuff, '_convertStrToArray')
@stuff.search('cool stuff')
expect(@stuff._convertStrToArray).toHaveBeenCalled()
...
我在我的茉莉花測試收到以下錯誤現在..
TypeError: Cannot read property 'length' of undefined
通過跟蹤堆棧跟蹤我發現錯誤來自以下行:
for _sub in str_array
很明顯,這裏有一個範圍問題,我無法解決。該@filter方法在_filter方法來源於骨幹。這個腳本工作得很好,我只是在測試中遇到麻煩。
我的問題:我如何才能獲得正確的上str_array變量訪問@filter打電話?
感謝您的幫助很大,這是它! – pabera 2012-04-18 14:07:12