我有一个名为myFactory的工厂,它具有$http依赖项。在我的测试中,我想模拟这种依赖关系。我发现我可以使用$httpBackend来实现它。我使用了下面的代码,它很有效。但我不明白为什么。angular在什么时候知道httpBackend实际上正在取代myFactory中的$http?
beforeEach(inject(function(_myFactory_, _$httpBackend_){
myFactory = _myFactory_;
$httpBackend = _$httpBackend_;
}));
它并没有取代$http,而是取代了一个名为$httpBackend的服务,因为它只在内部使用过。Angular使用了许多"私人"服务。因此,$http通常会注入真正的$httpBackend,但当angular-mocks.js加载时(在angular.js之后,顺序很重要),它基本上会用mock覆盖真正的$httpsBackend。