【发布时间】:2017-05-23 09:41:24
【问题描述】:
我对@987654321@ 方法有一个看法。如何编写单元测试来检查以下代码中是否触发了事件
submit:(event) ->
MyModel.save(null, {
success: (model, response)=>
@trigger('saveSuccess', response)
})
注意:我不想检查是否调用成功
尝试:
it 'Should trigger events on save', (done) ->
originalSave = MyModel.save
triggerSpy = sinon.spy()
MyModel.on('rating:saveSuccess', triggerSpy)
stub = sinon.stub(MyModel, "save", ->
successSpy = sinon.spy(arguments[1].success)
originalSave.apply(MyModel, arguments);
# want to call this line in the successSpy callback
expect(triggerSpy.callCount).to.equal(1);
done()
)
MyView.submit({})
expect(stub).to.have.been.called
编辑 第二次尝试(成功但不确定其正确方式)
it 'Should trigger events on save', (done) ->
triggerSpy = sinon.spy()
MyView.on('saveSuccess', triggerSpy)
stub = sinon.stub(MyModel, "save", ->
arguments[1].success()
expect(triggerSpy.callCount).to.equal(1);
done()
)
MyView.submitReval({})
expect(stub).to.have.been.called
【问题讨论】:
标签: unit-testing backbone.js coffeescript sinon chai