如何在Jasmine中的onShow中测试Backbone Marionette方法?

时间:2014-05-30 23:46:28

标签: backbone.js coffeescript jasmine marionette

我试图在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

2 个答案:

答案 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");