【发布时间】:2014-05-08 14:54:48
【问题描述】:
鉴于我有这样的服务。
angular.module('app')
.factory('Session', function Session($rootScope, $cookieStore) {
var user;
if (user = $cookieStore.get('user')) {
$rootScope.currentUser = user;
}
});
还有一个测试
'use strict';
describe('Service: Session', function () {
var Session,
_rootScope,
_cookieStore;
beforeEach(module('app'));
beforeEach(module(function($provide, $injector) {
_rootScope = $injector.get('$rootScope').$new();
_cookieStore = {
get: angular.noop
};
$provide.value('$rootScope', _rootScope);
$provide.value('$cookieStore', _cookieStore);
}));
beforeEach(inject(function(_Session_) {
Session = _Session_;
}));
it('transfers the cookie under user into the currentUser', function() {
spyOn(_cookieStore, 'get').andReturn('user');
inject(function(_Session_) {
Session = _Session_;
});
expect(_rootScope.currentUser).toEqual('user');
});
});
我最终得到了
Error: [$injector:unpr] Unknown provider: $rootScope
http://errors.angularjs.org/1.2.6/$injector/unpr?p0=%24rootScope
有人可以向我解释我缺少什么概念吗?我发现单元测试服务非常困难。
【问题讨论】:
标签: angularjs unit-testing angularjs-service