我正在针对我的主干应用程序编写茉莉花规范。但是,我遇到了这个问题。不知道为什么我的间谍功能没有被调用。我想确保模型何时出现changed
,它应该调用#render
。
这是我的主干观点:
class App.Views.Main extends Backbone.View
initialize: () ->
@model.on("change", @render, this)
render: () ->
console.log('rendering')
return
这是我的茉莉花规格:
it "should render when change is triggered", ->
renderSpy = sinon.spy(@view, 'render')
@view.model.trigger('change')
expect(renderSpy.called).toBeTruthy()
让我感到困惑的另一件事是,当这个规范运行时,它实际上调用了原始方法。始终显示控制台日志。任何人都可以帮助我吗?
更新:
正如莱昂纳多在下面回答的那样,我通过以下更改进行了更改:
it "should render when reset is triggered", ->
renderSpy = sinon.spy(App.Views.Main.prototype, 'render')
@view.model.trigger('change')
expect(@renderSpy.called).toBeTruthy()
renderSpy.restore()
它可以工作,但问题是它调用了原始方法。我只是想知道为什么?