2016-07-11 6 views
0

공급자에 대한 테스트를 만들려고하는데 테스트에서 구성 할 수 없습니다.단위 테스트에서 각도 공급자를 구성하는 방법은 무엇입니까?

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

하지만를

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

여기 내 테스트 설정입니다 : 여기가 인스턴스화 될때있는 I가 URL과 함께 서비스를 구성하고있어 내 제공 업체의 그것은 나에게 "정의되지 않은 속성 'config'을 읽을 수 없습니다."를 제공합니다.

내 테스트에서 공급자를 구성하려면 어떻게합니까?

답변

1

angular.mock.module()은 각도 모듈을 반환하지 않으므로 체인을 연결할 수 없습니다. the manual했다

으로서, 인수로서 기능을 허용 :

문자열 별칭 또는 익명 모듈 초기화 함수로 표현 된 모듈의 수.

이러한 기능은 config 단계에서 호출됩니다.

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

나는 '알 수없는 공급자'오류가 발생합니다. – Dallin

+0

원본 코드에서 붙여 넣은 오류를 해결했습니다. 그것은'HttpDataProvider'이어야합니다. – estus

관련 문제