我正在测试服务A,但服务A依赖于服务B.(例如,服务B注入服务A),服务B依赖于服务C(例如服务C注入服务B)。
我在服务A中尝试过模拟服务B
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 () {
});
}
我收到错误:
错误:[$ injector:unpr]未知提供商:serviceC Provider< - ServiceC< - ServiceB< - ServiceA
如果我删除它阻止没有错误,如果我放置它块我得到服务C依赖错误。
任何帮助将不胜感激。
答案 0 :(得分:1)
您可以使用这样的代码使Angular将您的模拟服务(服务B)注入服务A:
beforeEach(module(function($provide) {
var serviceBMock= {
get: function () {
return 'mockReturnValue';
}
};
$provide.constant('serviceB', serviceBMock);
}));