想在angularjs代码中为addEventListener编写jasmine单元测试用例

时间:2017-07-27 12:16:35

标签: javascript angularjs unit-testing jasmine

我正在尝试为angularJS指令编写的代码编写jasmine单元测试用例。以下是代码:

document.getElementById(scope.elementID).addEventListener('focus', function(e) {
    $rootScope.isGoogleLocationProgress = true;
    //   destinationReady = true;
});
document.getElementById(scope.elementID).addEventListener('keydown', function(e) {
    $rootScope.isGoogleLocationProgress = true;
    //   destinationReady = false;
});
document.getElementById(scope.elementID).addEventListener('blur', function(e) {
    $document.on('click', checkForClearClick);

    function checkForClearClick(e) {
        if (e.target) {
            if (e.target.name != "clearSearch") {
                $timeout(getLocationPrediction, 0);
            }
        }
    }
});

请帮我添加

1 个答案:

答案 0 :(得分:0)

只需为您在侦听器中使用的函数命名,并对这些函数进行单元测试。

那就是它。

示例:

document.getElementById(scope.elementID).addEventListener('focus', function(e) {
                    $rootScope.isGoogleLocationProgress = true;
                 //   destinationReady = true;
                });

变为

var yourFunc = function(e) {
    $rootScope.isGoogleLocationProgress = true;
    // destinationReady = true
};
document.getElementById(scope.elementID).addEventListener('focus', yourFunc);

现在,您可以对功能myFunc进行单元测试。