你如何在 Jasmine 的 onShow 中测试 Backbone Marionnette 方法?
Posted
技术标签:
【中文标题】你如何在 Jasmine 的 onShow 中测试 Backbone Marionnette 方法?【英文标题】:How do you test a Backbone Marionnette method inside of onShow in Jasmine? 【发布时间】:2014-07-20 19:45:05 【问题描述】:我正在尝试在 Backbone Marionette 中测试一个视图,但 onShow() 从未被调用,因此我无法测试在该方法中调用的方法。
views/test.coffee
onShow: () ->
debugger # this never happens when I run the Jasmine tests
alert "HI"
spec/javascripts/views/test_spec.coffee
describe 'a test', ->
beforeEach ->
@view = new window.TestView
@view.render()
it "does something", ->
# not important
【问题讨论】:
【参考方案1】:onShow()
通常仅在您将其显示在区域内时才会被调用。您有两个测试选项。
1) 渲染后手动调用onShow
:
@view.render();
@view.onShow();
2) 显示区域内的视图:
你可以在你的测试文件中创建一个新区域,如果你不需要使用 DOM,只需添加一个分离的 DOM 元素,否则你可以只创建一个元素并将其放入 DOM 中。
旁注*** 我不知道 CoffeeScript,所以下面的语法可能不正确!
beforeEach ->
@view = new window.TestView
@testRegion = new Backbone.Marionette.Region(el: document.createElement('div'))
@testRegion.show(@view)
【讨论】:
【参考方案2】:你也可以触发onShow。抱歉没有 CoffeeScript。
view.triggerMethod("show");
【讨论】:
以上是关于你如何在 Jasmine 的 onShow 中测试 Backbone Marionnette 方法?的主要内容,如果未能解决你的问题,请参考以下文章