Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ui掩码的Angular js指令的单元测试_Javascript_Angularjs_Unit Testing_Angularjs Directive_Karma Jasmine - Fatal编程技术网

Javascript ui掩码的Angular js指令的单元测试

Javascript ui掩码的Angular js指令的单元测试,javascript,angularjs,unit-testing,angularjs-directive,karma-jasmine,Javascript,Angularjs,Unit Testing,Angularjs Directive,Karma Jasmine,我有一个指令叫maskUI .directive('uiMask', function () { return { template: '<input ui-mask="{{maskPattern}}"/>', replace: true, scope: true, require: 'ngModel', link: function (scope, element, attrs, ngModel

我有一个指令叫maskUI

.directive('uiMask', function () {
    return {
        template: '<input ui-mask="{{maskPattern}}"/>',
        replace: true,
        scope: true,
        require: 'ngModel',
        link: function (scope, element, attrs, ngModelCtrl) {
            var maskPattern = attrs.uiMaskPattern;
            scope.maskPattern = maskPattern;

            function eventHandler(e) {
                scope.$apply(function () {
                    var isFocused = (document.activeElement.id === element.context.id);
                    if (e.type === 'mouseover') {
                        scope.maskPattern = maskPattern;
                    }
                    else if (e.type === 'mouseleave' || e.type === 'blur') {
                        if (!isFocused && ngModelCtrl.$modelValue === '') {
                            scope.maskPattern = '';
                        }
                    }
                });
            }

            if (!ngModelCtrl.$viewValue) {
                scope.maskPattern = '';
            }

            element.on('mouseover mouseleave blur', eventHandler);
        }
    };
});

我想在这个测试中测试这些鼠标事件。如果有人能帮上忙的话,我该怎么做。谢谢你

实际上,你不认为你需要这个指令的模板

无论如何,要在单元测试中触发事件,您可以执行以下操作:

var template = '<input ui-mask="xxx">',
    element = $compile(template)($scope);
//Trigger mouseover
element.triggerHandler('mouseover');

//function you wanna test after mouseover be triggered
var模板=“”,
元素=$compile(模板)($scope);
//触发鼠标盖
元素triggerHandler('mouseover');
//鼠标悬停后要测试的功能

谢谢,让我试试这个
var template = '<input ui-mask="xxx">',
    element = $compile(template)($scope);
//Trigger mouseover
element.triggerHandler('mouseover');

//function you wanna test after mouseover be triggered