gpt4 book ai didi

angularjs - Angular - Jasmine 可以执行真正的 XHR 吗?

转载 作者:行者123 更新时间:2023-12-02 21:16:00 25 4
gpt4 key购买 nike

我不想让 $http 被 mock 。主要原因是我正在编写一些集成测试,所以我希望执行所有 AJAX 请求。目前在我的测试中没有一个被触发。任何建议都非常受欢迎。

最佳答案

当您使用 Jasmine 测试时, Angular 模拟提供了模拟的 $httpBackend,但实际的 $httpBackend 仍然存在。你只需要在注入(inject)服务时告诉提供商使用原来的即可。在您的测试中它看起来像这样:

var original_http_backend = null; 
angular.module('ng').config(['$httpBackendProvider', function($httpBackendProvider) {
original_http_backend = $httpBackendProvider;
}]);

beforeEach(module(function($provide) {
$provide.provider('$httpBackend', original_http_backend)
}));

还值得指出的是,这种方法通常是测试前端代码的糟糕方法。这是因为它添加了后端依赖项,因此您无法隔离前端行为。最好模拟响应并用它进行测试。

不过,我最终还是使用了此功能,因为我们的模拟响应是在后端开发的以便在那里进行测试,而且我不想重复这些对象。这个方法让我能够使用它们。

关于angularjs - Angular - Jasmine 可以执行真正的 XHR 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16342473/

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