- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 angular 1.2.23 的稳定产品。最近,我决定转向 Angular 1.4.3。在与所有依赖项发生一些兼容性问题之后,我的应用程序运行良好,但所有单元测试用例都开始失败。投资后我意识到,如果我升级所有依赖项的版本但保持以前版本的 Angular ,即 1.2.23,测试用例工作正常..使用 angular 1.4.3,由于某种原因,单元测试中的依赖项注入(inject)失败。
以下是 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');
});
});
});
});
});
最佳答案
我从 angular
升级时遇到了类似的问题1.3 到 1.4。就我而言,我忘了升级 angular-mocks
从 1.3 到 1.4。我怀疑在从 1.2 到 1.3 的过渡过程中,模拟功能被分解为一个单独的模块,尽管我似乎无法找到文档来证实这一点。在这种情况下,您将不需要 angular-mocks
原始应用程序的依赖项,但升级时需要添加依赖项。
您应该可以通过添加 "angular-mocks": "1.4.x"
来解决此问题到您的依赖项列表和 karma
中已安装文件的链接配置。为了完整起见,这是一个最小的示例: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');
});
});
});
关于angularjs - 迁移到 Angular 1.4.3 后,Karma 测试用例不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31746491/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!