我对我目前的骨干群体之一写茉莉花测试时真正得到一个恼人的错误,我认为这不是我写的测试,而不是做一些错误的,我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