大佬教程收集整理的这篇文章主要介绍了angularjs – 单元测试角度指令templateUrl(包括requirejs和ng-html2js,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
>(初始错误)“意外请求:GET路径/到/ myTpl.html”
>“ReferenceError:找不到变量:angular”.使用不同的配置会发生此错误:
>当我在我的karma.conf中放置{pattern:’path / to / myTpl.html’,包括:falsE}并在我的测试文件中添加一个requirejs的定义路径/到/ myTpl.html(这是我想要的方式那工作).
>当我将path / to / myTpl.html放入我的karma.conf时,我的所有模板都会返回此错误(无论我是否使用Ng-html2-js预处理器).
>“错误:[$injector:modulerr]由于以下原因,无法实例化模块模板:
错误:[$injector:nomod]模块“模板”不可用!“.我看到karma-ng-html2js-preprocessor可用于创建一个包含所有模板的模块,但它从未起作用.
注意:我没有在karma.conf中使用FQN,我在这里使用它是一致的.我认为这不重要,但我更倾向于准确
我看到有人把每个’path / to / myTpl.html’:{deps:[‘angular’]}放在他们的test-main.js的shim部分.但它对我不起作用,并且该解决方案不会扩展.
假设您的指令具有templateUrl的’app / directive / myDirective.html’值.然后:
>检查你的html文件是否正确包含在karma配置的文件部分中,注意包含:false setTing:
files: [ //... { pattern: 'path_to_directive/myDirective.html',included: false },//... ],
当然你可以使用像*或**这样的外卡字符,但为了排除故障,我会从一个完整的路径值开始.根据karma配置中basePath的值,’path_to_directive’将与您应用中的路径相同或不同.
例如:如果业力基础路径是你应用根的一级,那么你的’path_to_directive’=’some-folder / app / directive / myDirective.html’
>确保您可以从浏览器获取文件.转到http://localhost:karma_port/base/path_to_directive/myDirective.html.js
在做这个测试时要注意:
> url中的基本前缀(karma提供来自该虚拟路径的所有文件,并将此前缀添加到所有URL)
>你网址末尾的’.js’
>在步骤2中获得文件后,您将看到由html2js预处理器创建的实际模块@L_675_29@.它应该看起来像这样:
angular.module('module_path/myDirective.html',[]).run(function($templateCachE) { $templateCache.put('module_path/myDirective.html',//...
>确保module_path为’app / directive /’.如果没有,那么你有2个选择:
> module_path有一些前缀=>只需将以下内容添加到karma配置中即可将其删除:
ngHtml2JsPreprocessor:{StripPrefix:’modulePrefix’}
> module_path更短=>添加缺失的部分:
ngHtml2JsPreprocessor:{prependPrefix:’missingPart’}
重启业力并确保步骤3中的“module_path”为“app / directive /”
>确保为模板模块添加了角度依赖性(检查test-main.js,它基本上是requireJS的配置文件).另请注意,shim部分中的值将根据test-main.js文件中的baseUrl值进行解析.为简单起见,我假设requireJS可以从’requirejs_path / myDirective.html’路径获取文件.
shim: { //.. 'requirejs_path/myDirective.html': { deps: ['angular'] },//.. }
>确保已将模板作为测试依赖项包含在内,并且不要忘记加载模块:
define(['requirejs_path/myDirective.html','angular-mocks','...'],function () { describe('test suite',function() { //... beforeEach(module('app/directive/myDirective.html')); //... }); });
我希望通过完成这6个步骤,你将得到一个有效的测试.祝好运.
以上是大佬教程为你收集整理的angularjs – 单元测试角度指令templateUrl(包括requirejs和ng-html2js全部内容,希望文章能够帮你解决angularjs – 单元测试角度指令templateUrl(包括requirejs和ng-html2js所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。