我一直在处理指令的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);
}
};
}]);
答案 0 :(得分:0)
您不需要为测试link
功能做任何特殊操作。一旦您$compile
和element
$scope.$digest()
(就像您对其他任何指令所做的那样),link
函数将自行执行。
如果您的代码var customScript = document.createElement("script");
没有被覆盖,您可能需要像这样模拟该函数,
spyOn(document, "createElement").and.returnValue({});