2016-07-11 2 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'); 
    }); 
}); 

しかし、 「未定義のプロパティ 'config'を読み取ることができません」というエラーが表示される

テストでプロバイダを設定するにはどうすればよいですか?

答えて

1

angular.mock.module()は、角度モジュールを返さず、連結できません。 the manualに前記

ように、引数として関数を受け入れ:

ストリングエイリアス又は匿名モジュール初期化関数として表現される任意の数のモジュール。

これらの機能は、config段階で呼び出されます。

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

「不明なプロバイダ」エラーが発生する – Dallin

+0

元のコードから貼り付けた間違いを修正しました。それは 'HttpDataProvider'でなければなりません。 – estus

関連する問題