将内联模板注入$ templateCache以进行Jasmine测试

时间:2014-12-07 14:27:19

标签: javascript angularjs jasmine karma-jasmine angular-templatecache

如果我的所有模板都在我的index.html中,并且每个模板都位于自己的<script type="text/ng-template" id="foo">...</script>块中,我怎样才能将它们放入$templatecache,以便Jasmine知道它们存在?

目前,Jasmine将所有templateUrl值视为所有远程路径。我查看了karma-ng-html2js-preprocessor,但似乎这是将离散模板文件转换为$templatecache而不是脚本块。

以下a plunker显示了如何加载内联模板。

1 个答案:

答案 0 :(得分:0)

使用karma-ng-template-preprocessor模块:

  

用于获取具有<script type="ng/template">的HTML文件并将它们放入AngularJS模板缓存的预处理器感谢karma-ng-html2js-preprocessor的想法和代码片段

例如,按如下方式设置karma.conf.js:

// preprocess HTML files before serving them to phantomJS
    preprocessors: {'app/**/*.html': 'ng-template'},
// include HTML files in the karma session
    files: ['**/*.html'],

// if you have defined plugins explicitly, add karma-ng-template-script-to-template-cache-preprocessor 
// plugins: ['karma-ng-template-preprocessor'] 

ngTemplatePreprocessor: { moduleName: 'inlineTemplates'}

在测试中使用它:

function foo()
  {
  beforeEach(module('inlineTemplates'));    
  }

describe('example test', foo);

<强>参考