Ich habe eine Ansicht mit submit
Methode. Wie schreibe ich einen Komponententest zu prüfen, ob das Ereignis in dem folgenden Code ausgelöst wirdUnit-Test Backbone-Modell speichern Griff
submit:(event) ->
MyModel.save(null, {
success: (model, response)=>
@trigger('saveSuccess', response)
})
Anmerkung: Ich will nicht, um zu überprüfen, dass der Erfolg
Versuch genannt wird:
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
bearbeiten Zweiter Versuch (funktionierte, aber nicht sicher, ob es die richtige Art und Weise)
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