gpt4 book ai didi

javascript - Angular 如何知道 $httpBackend 正在替换 Angularjs 测试中的 $http ?

转载 作者:行者123 更新时间:2023-11-28 11:53:26 25 4
gpt4 key购买 nike

我有一个名为 myFactory 的工厂,它具有依赖项 $http。在我的测试中,我想模拟这种依赖关系。我发现我可以使用$httpBackend来实现它。我使用下面的代码并且它有效。但我不明白为什么。在什么时候 Angular 知道 httpBackend 实际上正在替换 myFactory 内的 $http ?

beforeEach(inject(function(_myFactory_, _$httpBackend_){
myFactory = _myFactory_;
$httpBackend = _$httpBackend_;
}));

最佳答案

它不是取代 $http,而是取代一个名为 $httpBackend 的服务,您从未使用过该服务,因为它仅在内部使用。 Angular 有许多使用的“私有(private)”服务。因此 $http 通常会注入(inject)真实的 $httpBackend,但是当加载 angular-mocks.js 时(在 angular.js 之后,顺序很重要),它基本上会用模拟的 $httpBackend 覆盖真实的 $httpBackend。

关于javascript - Angular 如何知道 $httpBackend 正在替换 Angularjs 测试中的 $http ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31057119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com