如果我的所有模板都在我的index.html
中,并且每个模板都位于自己的<script type="text/ng-template" id="foo">...</script>
块中,我怎样才能将它们放入$templatecache
,以便Jasmine知道它们存在?
目前,Jasmine将所有templateUrl
值视为所有远程路径。我查看了karma-ng-html2js-preprocessor,但似乎这是将离散模板文件转换为$templatecache
而不是脚本块。
以下a plunker显示了如何加载内联模板。
答案 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);
<强>参考强>