Ich habe eine Form, die einen Handler zum einreichen Ereignis verbunden hat, wie folgt aus:Testen eines Formulareinreichung Handler mit Jasmin jQuery
$('#myForm').bind('submit', $.proxy(this, 'form_onSubmit'));
Ich kann nicht arbeiten, wie diese Codezeile zu testen, um sicherzustellen, Wenn das Formular gesendet wird, verwendet es den richtigen Ereignishandler. Zum Beispiel funktioniert dies nicht als die Seite selbst hält in einer Endlosschleife einreichen:
describe('Submitting the form', function() {
it ('Uses the correct event handler', function() {
spyOn(myConstructor, 'form_onSubmit');
$('#myForm').trigger('submit');
expect(myConstructor.form_onSubmit).toHaveBeenCalled();
});
});
Ich habe auch versucht, zu verwenden: nicht in der Lage
expect($('#myForm')).toHandleWith('submit', myConstructor.form_onSubmit);
Aber wie ich Um ein funktionierendes Beispiel zu finden, bin ich mir sicher, dass ich es falsch benutze (Jasmine wirft den Fehler "Kann nicht lesen 'submit' von undefined" wo undefined ist dies.actual.data ("events")).
Kann mir bitte jemand helfen? Ich war schon seit Stunden dabei! Vielen Dank.
hmmm ... Hat 'triggerHandler ('Senden')' auch die Seite dazu führen, Postback? –
Das verhindert das Postback (nie zuvor verwendet - danke!), Aber der Test schlägt leider immer noch fehl, da Jasmine denkt, dass myConstructor.form_onSubmit nicht aufgerufen wird. (Obwohl, wenn ich einen Breakpoint in den Code einfüge es tut) – user399050