如何在单元测试中配置 Angular Provider?

How to configure Angular Provider in unit test?

我正在尝试为提供商创建测试,但我似乎无法在测试中对其进行配置。这是我的提供者,我正在使用它配置一个 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');
     });
 });

但它给了我错误 "Cannot read property 'config' of undefined"

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

angular.mock.module() 不是 return 一个 Angular 模块,不能链接。

the manual所述,它接受函数作为参数:

any number of modules which are represented as string aliases or as anonymous module initialization functions.

这些函数在 config 阶段调用。应该是

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