0

私が作成した非常に単純なディレクティブをテストしようとしています。

.directive('cssnotification', [ '$timeout', function($timeout) {
return {
    restrict:'A',
    link:function(scope, element, attrs) {

        scope.$watch('success',function(newVal ,oldVal){

            if(newVal){                                
                $timeout(function(){                        

                         scope.success = false;                                                      

                },1000);
            }
        },true)
    }  
}
 }])

このディレクティブは、一部の要素を 1 秒間表示し、その後フェードアウトします。(ここに問題を示すフィドルがあります)

fadingOut アニメーション angular を実行するには、「ng-hide-add」クラスを要素に追加する必要があることを知っています。つまり、テストしようとしています。ブラウザーでは動作します (フィドラーから angular-mocks を削除すると実行されます) が、単体テストでは、このテストは何らかの理由で失敗します。

ng-animateの注入と関係があると思います...

よろしくお願いします

4

1 に答える 1

1

解決策を見つけました:nganimateがクラスを追加するまでしばらく待ちます:

      $timeout(function(){
          expect(e.hasClass('ng-hide-add')).toEqual(true);
      },100)

ここにフィドルがあります

于 2013-12-26T08:59:11.123 に答える