2016-12-26 67 views
0

我一直在使用指令的茉莉花測試用例,但使用模板參數,我會直接檢查指令的輸出,但是我不知道如何覆蓋指令沒有定義模板部分。就像下面給出的一個:茉莉花測試用於覆蓋指令的鏈接參數

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

你不需要做任何特殊的測試link功能。有一次,你$compile你的element$scope.$digest()(就像你做任何其他指令),link函數將自己執行。

如果您的代碼var customScript = document.createElement("script");是沒有得到覆蓋,你可能需要模擬像這樣的功能,

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

了var customScript =使用document.createElement( 「腳本」);代碼行已被自動覆蓋。感謝您的信息。我以前不知道這一點。有用! :) –

+0

@ApoorvTiwari很高興我可以幫助:) – tanmay