大佬教程收集整理的这篇文章主要介绍了angularjs – Angular Karma单元测试:如何在karma配置中注入模拟服务而不是在所有测试规范中,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Chrome 3X.0.2125 (LinuX) ERROR Some of your tests did a full page reload! Chrome 3X.0.2125 (LinuX): Executed 23 of 102 (skipped 2) ERROR
angular.module('myapp',[/*..I have omitted..*/]) .run(function(MyLoginSerivce,/*.. I have omitted ..*/)){ if(!MyLoginservice.isLoggedIn()){ MyLoginservice.redirectForLogin(); }else{ /* other logics */ } }
我知道我必须在每个测试规范中添加以下代码.但这听起来很愚蠢,将它添加到几十个测试文件中.
beforeEach(module(function($providE){ $provide.value("MyLoginServce",{ isLoggedIn: function(){ return true; },redirectForLogin: function {} }); }));
有没有办法告诉Karma使用模拟服务并只在一个地方添加一段代码?
谢谢
当前解决方案
第1步:我将其保存在单独的文件中,例如./test/mocked.login.service.js:
var mockedLoginservice = { isLoggedIn: function(){ return true; },redirectForLogin: function {} });
第2步:通过插入’test / mocked.login.service.js’将文件包含在karma.conf.js中
第3步:我只是在我的测试中使用它,如下所示:
beforeEach(module(function($providE){ $provide.value("MyLoginServce",mockedLoginservice }));
以上是大佬教程为你收集整理的angularjs – Angular Karma单元测试:如何在karma配置中注入模拟服务而不是在所有测试规范中全部内容,希望文章能够帮你解决angularjs – Angular Karma单元测试:如何在karma配置中注入模拟服务而不是在所有测试规范中所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。