1

jQueryはjqLit​​eに取って代わり、実際のアプリではjQueryも利用できないため、jQueryを使用せずにAngularJSアプリを(ユニット)テストしたいと思います。jQuery と jqLit​​e には実際の違いがあるため、単体テストで AngularJS で jQuery を使用できるようにするのは危険です。

現在、ほとんどのテストは jQuery がなくても問題なく動作しますが、フィールドをぼかす必要があります。これは、jQuery を使用してのみ行う方法を見つけることができます。クロスブラウザの方法でJavascriptでそれを行うにはどうすればよいですか?

更新: 回答を受け取った後、私は triggerHandler() を使用して解決しましたが、ディレクティブ自体ではなく、次のような単体テストで解決しました:

it("should set the blur state on blur", function() {
    angular.element(elm[0][0]).triggerHandler("blur");
    expect($rootScope.passwordblur).toBe(true);
});
4

1 に答える 1

1

ディレクティブを試さない理由:

app.directive('blurable', function () {        
        return {
            link: function(scope, element) {               
                element.bind("blur" , function(e){
                    // blur happens
                });
                scope.triggerBlur = function(){
                    element.triggerHandler("blur");
                }
            }
        }
    });

これで、「手動」ぼかしに対してscopeこのメ​​ソッドを実行できます。 プランク: http://plnkr.co/edit/wPqRqhtriggerBlur

于 2013-08-06T08:29:24.990 に答える