使用chrome开发工具。当我在应用程序中实例化一个视图时,我得到了这个...
new job.SearchView
SearchView
$el: jQuery.fn.jQuery.init[1]
cid: "view8"
el: HTMLDivElement
mbti: function (){ return fn.apply(me, arguments); }
options: Object
__proto__: ctor在使用jasmine时,我得到了以下信息(以及规范失败)
new job.SearchView
SearchView
$el: jQuery.fn.jQuery.init[0]
cid: "view17"
el: undefined
mbti: function (){ return fn.apply(me, arguments); }
options: Object
__proto__: ctor为什么el:在jasmine中实例化时是未定义的?
像这样定义的SearchView ...
jQuery ->
class SearchView extends Backbone.View
el: '#search'
template: JST['resume']
<snip>
@job = if window.job then window.job else {}
@job.SearchView = SearchView像这样的规范...
describe 'Search View', ->
it 'should be defined', ->
expect(job.SearchView).toBeDefined()
beforeEach ->
@view = new job.SearchView()
describe 'render', ->
it 'should render the task', ->
$el = @view.render().$el
expect($el).toBeDefined()发布于 2012-04-27 05:05:26
当您在视图中指定el属性时,它将充当一个容器。在你的应用程序中,#search存在于DOM中。在jasmine测试中,它不会。
您可以使用jasmine-jquery创建沙箱容器,并在测试中构造视图时使用它们。
`
https://stackoverflow.com/questions/10335665
复制相似问题