0
我正在測試服務A,但服務A取決於服務B(例如,服務B被注入到服務A中)並且服務B取決於服務C(例如,服務C被注入到服務B)。angularjs單元測試 - 服務內部模擬服務
我試圖嘲弄服務服務B A
describe('Testing ServiceA', function() {
var serviceA, serviceBMock;
beforeEach(function() {
serviceBMock= {
get: function() {
return 'mockReturnValue';
}
};
angular.module('serviceAMocks', [])
.value('ServiceB', serviceBMock);
});
beforeEach(module('serviceAMocks'));
beforeEach(inject(function (_ServiceA_){
serviceA=_ServiceA_;
});
it('Gets', function() {
});
}
我得到錯誤:
錯誤:[$注射器:unpr]未知提供商:serviceC提供< - ServiceC < - ServiceB < - ServiceA
如果我刪除它阻止沒有錯誤,如果我把它阻止我得到服務C依賴性錯誤。
任何幫助將不勝感激。
我試圖和它的工作...和問題的原因是使用$提供。服務.......但我不明白爲什麼我們需要使用$ provide.constant而不是$ provide.service ??? – EnugulaS
@EnugulaS我認爲可以從[本文檔的這一頁](https://docs.angularjs.org/guide/providers)收集解釋。不能肯定地說,但使用'constant()'是在Angular的「配置」階段創建服務的一種方式。所以你實際上是在Angular打了一拳並在通常創建之前創建你的模擬服務。 –