Mam formularz, który ma obsługi dołączoną do wypadku przedłożenia takiego:Testowanie obsługi przesyłania formularzy z Jasmine jQuery
$('#myForm').bind('submit', $.proxy(this, 'form_onSubmit'));
nie mogę pracować się, jak przetestować ten wiersz kodu w celu zapewnienia że po przesłaniu formularza używa poprawnej procedury obsługi zdarzeń. Na przykład, to nie zadziała jak utrzymuje strona składając się w nieskończonej pętli:
describe('Submitting the form', function() {
it ('Uses the correct event handler', function() {
spyOn(myConstructor, 'form_onSubmit');
$('#myForm').trigger('submit');
expect(myConstructor.form_onSubmit).toHaveBeenCalled();
});
});
Mam również próbuje użyć:
expect($('#myForm')).toHandleWith('submit', myConstructor.form_onSubmit);
Ale jak nie udało aby znaleźć działający przykład tego gdziekolwiek, jestem pewien, że używam go niepoprawnie (Jasmine rzuca błąd "Nie można odczytać właściwości 'submit' of undefined" gdzie undefined to this.actual.data ("events")).
Czy ktoś może pomóc? Byłem w tym od wielu godzin! Dzięki.
hmmm ... Czy 'triggerHandler ('submit')' również spowodować, że strona na ogłaszanie? –
To zapobiega występowaniu odświeżania wstecznego (nigdy wcześniej tego nie używano - dziękuję!), Ale niestety test nadal się nie udaje, ponieważ Jasmine uważa, że funkcja myConstructor.form_onSubmit nie jest wywoływana. (Chociaż jeśli umieściłem punkt przerwania w kodzie, to robi) – user399050