使用Karma测试AngularJS时的依赖性问题

时间:2014-01-13 09:01:19

标签: angularjs testing dependency-injection karma-runner

我在Karma测试场景中遇到依赖问题。 准备环境时看起来像这样:

    beforeEach(module('printecAdminApp'));
    beforeEach(inject(function(restService) {
            testRestService = restService;
            injector = angular.injector(['ng']);
        }));

和这样的测试场景:

it('simple REST GET', function() {
        injector.invoke(function($http) {
            var getResult,
                        restOpt = testRestService.prepareRestCallObj(); 
                       //returns {method: 'GET', url : '...'}

            runs(function() {
                        $http(restOpt).then(.....
            });
            waitsFor(function() {
                return getResult;
            }, 'get result', 50);           
            runs(function() {
                expect(getResult).toEqual({"status" : true});
            });
        });
    });

一切正常。但我想将restService依赖从准备环境部分代码转移到场景,因为我想摆脱静态testRestService变量。喜欢$ http。但如果我尝试以同样的方式做 - 用$ http

声明
injector.invoke(function($http, restService) {  

我收到此错误:错误:[$ injector:unpr]未知提供商:restServiceProvider< - restService

知道我应该怎么做?我应该在准备代码中将它分配给注射器吗?

任何答案或提示的答案

0 个答案:

没有答案