Mar*_*ari 0 javascript unit-testing jasmine angularjs karma-jasmine
我有一个名为myFactory的工厂,它具有依赖$ http.在我的测试中,我想模仿这种依赖.我发现我可以使用$ httpBackend实现它 .我使用下面的代码,它的工作原理.但我不明白为什么.在什么时候,angular知道httpBackend实际上正在替换myFactory中的$ http?
beforeEach(inject(function(_myFactory_, _$httpBackend_){
myFactory = _myFactory_;
$httpBackend = _$httpBackend_;
}));
Run Code Online (Sandbox Code Playgroud)
它不会取代$ http,它取代了你从未使用过的名为$ httpBackend的服务,因为它只在内部使用.Angular有很多"私人"服务.所以$ http通常用真正的$ httpBackend注入,但是当angular-mocks.js被加载时(在angular.js之后,顺序很重要)它基本上用模拟的覆盖真实的$ httpBackend.