我试图在Backbone Marionette中测试一个视图,但onShow()永远不会被调用,因此我无法测试在该方法中调用的方法。
视图/ test.coffee
onShow: () ->
debugger # this never happens when I run the Jasmine tests
alert "HI"
规格/ Javascript角/视图/ test_spec.coffee
describe 'a test', ->
beforeEach ->
@view = new window.TestView
@view.render()
it "does something", ->
# not important
答案 0 :(得分:3)
onShow()
通常只有在区域内显示时才会被调用。您有两种测试方法。
1)渲染后手动调用onShow
:
@view.render();
@view.onShow();
2)显示区域内的视图:
您可以在测试文件中创建一个新区域,如果您不需要使用DOM,只需添加一个分离的DOM元素,否则您只需创建一个元素并将其放入DOM中即可。
Sidenote ***我不知道CoffeeScript,所以以下内容可能在语法上不正确!
beforeEach ->
@view = new window.TestView
@testRegion = new Backbone.Marionette.Region({el: document.createElement('div')})
@testRegion.show(@view)
答案 1 :(得分:2)
你也可以触发onShow。抱歉没有CoffeeScript。
view.triggerMethod("show");