angularjs – 迁移到角1.4.3后,Karma测试用例无法正常工作
发布时间:2020-12-17 07:14:00 所属栏目:安全 来源:网络整理
导读:我有一个稳定的产品,使用角1.2.23.最近,我决定转向棱角1.4.3.在与所有依赖项的几个兼容性问题之后,我的应用程序工作正常,但所有单元测试用例都已经开始失败.投资后我意识到,如果我升级所有依赖项的版本但保持角度在先前版本即1.2.23,testcases工作正常.有角
我有一个稳定的产品,使用角1.2.23.最近,我决定转向棱角1.4.3.在与所有依赖项的几个兼容性问题之后,我的应用程序工作正常,但所有单元测试用例都已经开始失败.投资后我意识到,如果我升级所有依赖项的版本但保持角度在先前版本即1.2.23,testcases工作正常.有角度1.4.3,由于某种原因,单元测试中的依赖注入失败.
以下是bower.json中更新的依赖项列表. "dependencies": { "angular-cookies": "1.4.3","bootstrap": "3.0.3","angular-ui-router": "0.2.15","angular-gettext": "2.1.0","angular": "1.4.3","angular-ui-utils": "3.0.0","restangular": "1.4.0","angular-route": "1.4.3","momentjs": "2.10.6","angular-i18n": "1.4.3" } 以下是测试文件 – describe("Module: x.xyz",function () { describe("Factory: xyz",function () { var service; beforeEach(function () { module('x.xyz'); inject(function ($injector) { service = $injector.get("xyz"); }); }); describe("Testing service(): ",function () { describe('Testing getXYZDescription(): ',function () { it('should return the description for the xyz event name passed if it is available',function () { expect(service.getXYZDescription('abc')).toBe('abc'); }); }); }); }); }); 当我运行上面的测试用例时,我得到的服务是未定义的.有人可以帮忙吗? 解决方法
从角度1.3升级到1.4时,我遇到了类似的问题.在我的情况下,我忘了将角度模拟从1.3升级到1.4.我怀疑在从1.2到1.3的过渡中,模拟功能被分解为一个单独的模块,尽管我似乎无法找到证实这一点的文档.在这种情况下,您不需要原始应用程序的角度模拟依赖项,但您需要在升级时添加依赖项.
你应该能够通过在你的karma配置中添加“angular-mocks”:“1.4.x”到你的依赖项列表和安装文件的链接来解决这个问题.为了完整起见,这是一个最小的例子: karma.conf.js: /*global module*/ module.exports = function (config) { 'use strict'; config.set({ basePath: '.',frameworks: ['jasmine'],files: [ 'node_modules/angular/angular.js','node_modules/angular-mocks/angular-mocks.js','*.js' ],autoWatch: true,singleRun: false,browsers: ['Chrome'] }); }; 的package.json: { "name": "angular-inject-test","version": "1.0.0","description": "","main": "index.js","scripts": { "test": "karma start karma.conf.js" },"author": "","dependencies": { "angular": "1.4.x","angular-mocks": "1.4.x","karma": "^0.13.x","karma-cli": "^0.1.x","karma-jasmine": "^0.3.x","karma-chrome-launcher": "^0.2.x" } } test.js: /*global angular,beforeEach,describe,expect,inject,it,module*/ angular.module('x',[]) .factory('xyz',function () { "use strict"; return { getXYZDescription: function (value) { return value; } }; }); describe("Module: x.xyz",function () { "use strict"; describe("Factory: xyz",function () { var service; beforeEach(function () { module('x'); inject(function ($injector) { service = $injector.get("xyz"); }); }); it('Should echo input',function () { expect(service.getXYZDescription('abc')).toBe('abc'); }); }); }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 当当网架构师:从码农到大牛,技术与心境的双重提升
- bash – 从控制台输出抓取最后n行
- 使用scala akka spray进行非常基本的http服务器测试时出错
- Angular2 RC:在创建ControlGroup后,使用addControls方法添
- WebService 角色设置
- angular – 处理’handleError`和`extractData`私有方法的最
- angularjs – 如何使Angular保持两个字段同步?
- WCF以及之前的Net Remoting,WebService,RestFull,MSMQ关系
- AngularJS. ui-view包含在ng-view中
- scala – 一个Stream的头部究竟是如何评估的?