此 Angular 服务 Jasmine 测试中缺少什么?
What's missing in this Angular service Jasmine test?
In this plunk 我有一个通过 Jasmine 测试的 Angular 服务。测试显然找不到服务,我得到
Error: [$injector:unpr]
http://errors.angularjs.org/1.6.1/$injector/unpr?p0=UtilsProvider%20%3C-%20Utils
还有
Error: Declaration Location
这里有什么问题?
Javascript:
var app = angular.module("app", [])
app.service('Utils', function(){
this.sum = function(a, b) {
return a + b;
};
});
describe("Testing Service Utils", function() {
beforeEach(function() {
angular.module("app");
});
it('should sum',
inject(function(Utils) {
expect(Utils.sum(1,2)).to.equal(3);
}));
});
两个问题...
为了注册模块配置进行测试,您需要使用angular.mock.module
beforeEach(angular.mock.module('app'))
// or simply beforeEach(module('app'))
等式断言是toEqual
,不是to.equal
expect(Utils.sum(1,2)).toEqual(3)
In this plunk 我有一个通过 Jasmine 测试的 Angular 服务。测试显然找不到服务,我得到
Error: [$injector:unpr] http://errors.angularjs.org/1.6.1/$injector/unpr?p0=UtilsProvider%20%3C-%20Utils
还有
Error: Declaration Location
这里有什么问题?
Javascript:
var app = angular.module("app", [])
app.service('Utils', function(){
this.sum = function(a, b) {
return a + b;
};
});
describe("Testing Service Utils", function() {
beforeEach(function() {
angular.module("app");
});
it('should sum',
inject(function(Utils) {
expect(Utils.sum(1,2)).to.equal(3);
}));
});
两个问题...
为了注册模块配置进行测试,您需要使用
angular.mock.module
beforeEach(angular.mock.module('app')) // or simply beforeEach(module('app'))
等式断言是
toEqual
,不是to.equal
expect(Utils.sum(1,2)).toEqual(3)