У меня есть фабрика под названием myFactory, у которой есть зависимость $ http. В моих тестах я хочу издеваться над этой зависимостью. Я узнал, что могу добиться этого, используя $ httpBackend. Я использовал код ниже, и он работает. Но я не понимаю, почему. В какой момент угловой знает, что httpBackend фактически заменяет $ http, который находится внутри myFactory?
beforeEach(inject(function(_myFactory_, _$httpBackend_){
myFactory = _myFactory_;
$httpBackend = _$httpBackend_;
}));
Он не заменяет $ http, его заменяет службу под названием $ httpBackend, которую вы никогда не использовали, потому что ее использовали только внутренне. У углового есть множество "частных" сервисов, которые он использует. Таким образом, $ http вводится с реальным $ httpBackend обычно, но когда angular-mocks.js загружается (после того, как angular.js, порядок важен), он в основном перезаписывает реальный $ httpBackend с макетным.