は、私は、提出イベントにアタッチハンドラを持つフォームを持っている:このようにテストジャスミンjQueryを使ってフォーム送信ハンドラ
$('#myForm').bind('submit', $.proxy(this, 'form_onSubmit'));
私が保証するために、このコード行をテストする方法を考え出すことはできませんフォームが送信されると、正しいイベントハンドラが使用されます。
describe('Submitting the form', function() {
it ('Uses the correct event handler', function() {
spyOn(myConstructor, 'form_onSubmit');
$('#myForm').trigger('submit');
expect(myConstructor.form_onSubmit).toHaveBeenCalled();
});
});
私も使用しようとしてきた:
expect($('#myForm')).toHandleWith('submit', myConstructor.form_onSubmit);
しかし、私はできなかったように、ページが無限ループに自分自身を送信し続けるようたとえば、これは動作しません。私はそれを間違って使用していると確信しています(Jasmineは「未定義のthis.actual.data( "events")がどこにあるのかプロパティ "submit 'を読むことができません)。
誰でもお手伝いできますか?私は何時間もそれをしてきました!ありがとう。
については
なるほど... 'triggerHandler( '提出')ん'もページがポストバックを引き起こしますか? –
これは、ポストバックが発生しないようにしています(以前はこれを使用しませんでした - ありがとう!)残念ながら、JasmineはmyConstructor.form_onSubmitが呼び出されないと思っているのでテストは失敗します。 (ただし、コードにブレークポイントを入れても) – user399050