2016-01-11 1 views
1

Я пытаюсь выполнить тестирование службы, которая использует restangular. Я попробовал пару путей включения restangular в блоке первым делает это в beforeEach как так:Единичное тестирование с жасмином и restangular - невозможно создать экземпляр модуля restangular

beforeEach(angular.mock.module("restangular")); 

выше усматривается в модульном тестировании restangular.

Я также пробовал.

beforeEach(angular.module("restangular"));  

И затем, наконец, я попробовал следующее который видел в этом plunkr: http://plnkr.co/edit/hNmxWR?p=info

it('should inject restangular', inject(function(Restangular) { 
    expect(Restangular).toBeDefined(); 
     //... do stuff with 
})); 

каждый раз, когда я запускаю тест блока я получаю следующее сообщение об ошибке:

Failed to instantiate module restangular due to: 
Error: [$injector:nomod] Module 'restangular' is not available! You either  misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument. 
http://errors.angularjs.org/1.4.7/$injector/nomod?p0=restangular 

Любые идеи? Это то, что моя служба выглядит для примера:

angular 
.module('schoolsService' ['restangular']) 
.factory('schoolsService', function(Restangular) { 
var schools = Restangular.all('/report/school'); 
return { 
     getSchools: function(schoolType) { 
      return schools.get(schoolType); 
     } 
    }; 
}); 

ответ

1

Это, как я сделал это:

describe("schoolsService test", function() { 

    beforeEach(module("schoolsService")); 
    beforeEach(module("restangular")); 

    var schoolsService, Restangular; 

    beforeEach(inject(function (_schoolsService_, _Restangular_){ 
     schoolsService = _schoolsService_; 
     Restangular = _Restangular_; 
    }); 

    it("performs a test", function(){ 
     // expect something 
    }); 

}); 

Кроме того, не забудьте включить эти модули в конфигурационных файлах!