1

<form>のディレクティブコントローラーの機能にng-submitバインドを持つ角度ディレクティブがあります。コードを立ち上げて単体テストを単独で実行すると効果があります。カルマ/ジャスミン角度単位のサブミットクリックユニットテストは、束で実行している間に失敗しましたが、単独ではありません。

it('Verify submit button is clicked', function() { 
      var btnSubmit = form.querySelector('#submit');     
      btnSubmit.click(); 

      timeout.flush(); 
      expect(scope.blah).to.equal(blah);} 

私は()すべてbtnSubmit.clickをコメントアウト:ユニットテストのすべてを実行するとき

問題は、我々はここで

PhantomJS 1.9.8 (Mac OS X 0.0.0) ERROR 
    Some of your tests did a full page reload! 
allMessages PhantomJS 1.9.8 (Mac OS X 0.0.0) ERROR 
    Some of your tests did a full page reload! 
PhantomJS 1.9.8 (Mac OS X 0.0.0) ERROR 
    Some of your tests did a full page reload! 

のような振る舞いはユニットテストで見ることがされますうまくいくでしょう。ここで

htmlです:

<paper-dialog modal class="pa-paper-dialog" id="blah" role="alertdialog"> 
    <paper-button 
     dialog-dismiss 
     class="close-button" 
     ng-click="resetPA(event)"> 

    </paper-button> 
    <form class="blah" is="iron-form" ng-submit="submitFunction(blah)" method="get" action="/" id="form"> 
     <div class="pa-header">text</div> 
     <div class="input-fields-panel"></div> 
     <div class="buttons-panel"> 
      <button type="submit" class="blah" id="submit">Admit</button> 
      <paper-button noink dialog-dismiss class="blah" ng-click="resetPA(event)">Cancel</paper-button> 
     </div> 
    </form> 
</paper-dialog> 

任意のアイデアなぜですか?

ありがとうございました!

+0

HTMLの例が参考になるかもしれませんが、とにかくこれが役に立ちます: http://stackoverflow.com/questions/20565968/submitting-a-form-within-karma-process-some-of-your-tests -did-a-full-page-rel –

+0

確かに! –

+0

私は既に前にポストを見つけたと思う。私はポストと同じことをやっていると思います。フォームのサブミットボタンをクリックして.click()を呼び出してください。 –

答えて

1

我々は

代わりのフォーム送信用のボタンのクリックを()やって...これに対処するための別のルートを取ってしまう、我々はisolateScopeにアクセスし、テストに直接提出する関数を呼び出すしてみてください。

このようにして、ユニットテストでは問題は発生しません。すべてが成功します。

関連する問題