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');
     });
 });

但它给了我错误“无法读取未定义的属性'config'”

如何在我的测试中配置我的提供者?

4

1 回答 1

1

angular.mock.module()不返回 Angular 模块并且不能被链接。

手册中所述,它接受函数作为参数:

表示为字符串别名或匿名模块初始化函数的任意数量的模块。

这些函数在config阶段期间被调用。它应该是

angular.mock.module('PRXHttpData', function(HttpDataProvider){ ... });
于 2016-07-11T18:23:57.683 回答