2016-07-11 3 views
0

Я пытаюсь создать тесты для поставщика, но я не могу настроить его в тесте. Вот мой провайдер, с которым я Настроив службу с URL, когда он получает экземпляр:Как настроить Угловой провайдер в модульном тесте?

angular.module('PRXHttpData', []) 
.provider('HttpData', function(){ 

    var url; 

    this.setUrl = function(_url_){ 
     url = _url_; 
    }; 

    this.$get = function(){ 
     return new HttpDataService(url); 
    } 

}); 

function HttpDataService(url){ 
    this.url = url; 
} 

Вот мой тест установки:

beforeEach(function() { 
    angular.mock.module('PRXHttpData'); 
}); 

var HttpDataProvider; 

beforeEach(inject(function (_HttpData_) { 

    HttpDataProvider = _HttpData_; 

})); 

Я пытался делать:

beforeEach(function() { 
    angular.mock.module('PRXHttpData').config(function(HttpData){ 
     HttpData.setUrl('test/url'); 
    }); 
}); 

Но это дает мне ошибку «Невозможно прочитать свойство« Конфигурация »неопределенного»

Как я могу настроить поставщика в своем тесте?

ответ

1

angular.mock.module() не возвращает Угловой модуль и не может быть прикован.

Как сказано в the manual, он принимает функции в качестве аргументов:

любое количество модулей, которые представлены в виде строковых псевдонимами или как анонимные функции инициализации модуля.

Эти функции вызываются во время фазы config. Это должно быть

angular.mock.module('PRXHttpData', function(HttpDataProvider){ ... }); 
+0

Когда я это делаю, я получаю ошибку «неизвестного провайдера» – Dallin

+0

Я исправил ошибку, вставленную из исходного кода. Это должен быть «HttpDataProvider». – estus

Смежные вопросы