用于覆盖指令的链接参数的Jasmine测试用例

时间:2016-12-26 08:43:57

标签: jasmine karma-jasmine

我一直在处理指令的jasmine测试用例,但是使用模板参数,我将直接检查指令的输出,但是我不知道如何在没有定义模板部分的情况下覆盖指令。就像下面给出的那样:

    appDirective.directive('linkscriptContainer', [ 'config', function(config) {
    return {
        restrict : 'A',
        scope : {
            'value' : '@'
        },
        link : function(scope, elem, attrs) {

            //creating custom script tag
            var customScript = document.createElement("script");
            customScript.type = "text/javascript";

            //checking if property value is available in Config object 
            //then reading the attribute value and constructing the src tag
            if (config[attrs.value] != undefined) {
                customScript.src = config[attrs.value];
            }

            //appending the script tag in linkScriptContainer
            elem.append(customScript);
        }
    };
}]);

1 个答案:

答案 0 :(得分:0)

您不需要为测试link功能做任何特殊操作。一旦您$compileelement $scope.$digest()(就像您对其他任何指令所做的那样),link函数将自行执行。

如果您的代码var customScript = document.createElement("script");没有被覆盖,您可能需要像这样模拟该函数,

spyOn(document, "createElement").and.returnValue({});