私はsubmit
メソッドでビューを持っています。どのように私は次のコードでイベントがトリガされていることをユニットテストバックボーンモデルセーブハンドル
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