0

我正在尝试测试一个简单的服务,但出现Unkown Provider错误。这是服务定义:

var sessionManager = angular.module('MyApp.SessionManager', ['ngResource']);
sessionManager.factory('UserService', function($resource) {
    var UserService = $resource('/api/users/:key', {}, {
        getNewUUID: {
            method: 'GET',
            params: {
                action: 'getNewUserUUID'
            }
        }
    });

    return UserService;
});

这是测试:

describe('Testing SessionManager', function() {

    var userService;

    beforeEach(function() {
        module('MyApp.SessionManager');

        inject(function($injector) {
            userService = $injector.get('UserService');
        });
    });

    it('should contain a UserService', function() {
        expect(userService).toBeDefined();
    });
});

我似乎看不到问题,我知道UserService正在调用 javascript 文件,因为我可以在文件顶部获取控制台日志,但是如果我将它放在服务定义中,我看不到它被调用. 所以由于某种原因,就像 Angular 没有实例化我的服务一样?

4

1 回答 1

0

我意识到问题在于我的模块MyApp.SessionManager正在被替换,因为我认为您可以在每次重新打开它以添加模块时声明依赖项。如果服务在测试之前确实存在,那么上面的代码就可以了。

于 2013-10-02T20:45:14.397 回答