gpt4 book ai didi

javascript - $httpBackend 模拟未发送请求?

转载 作者:行者123 更新时间:2023-12-03 12:03:16 27 4
gpt4 key购买 nike

经过太多时间后,我终其一生都无法让这个示例正常工作。我正在关注 Ben Lesh 的 excellent guides在 Angular 中模拟 $http 请求,但由于某种原因,服务请求未发送。

我已经通过构建一个单独的 HTML DOM 并向其应用我的应用程序和一个小型 Controller 来验证该服务是否正常工作。我正在使用 Jasmine 1.3 和 Angular 1.2.9(当然还有 angular-mocks.js )。

这是应用程序:

var app = angular.module('myApp', []);

app.factory('httpBasedService', function($http) {
return {
sendMessage: function(msg) {
return $http.get('something.json?msg=' + msg)
.then(function(result) {
console.log(result.data)
return result.data;
});
}
};
});

测试:

describe("httpBasedService ", function () {
var httpBasedService,
mockBackend;

beforeEach(function (){
module('myApp');

inject(function(_$httpBackend_, _httpBasedService_) {
mockBackend = _$httpBackend_;
httpBasedService = _httpBasedService_;
});
});

afterEach(function() {
mockBackend.verifyNoOutstandingExpectation();
mockBackend.verifyNoOutstandingRequest();
});

it('should send the msg and return the response.', function () {
var returnData = {excited: true};
mockBackend.expectGET('something.json?msg=wee').respond(returnData);

var returnedPromise = httpBasedService.sendMessage('wee');
var result;

returnedPromise.then(function(response) {
result = response;
});

mockBackend.flush();
expect(result).toEqual(returnData);
});
});

我收到一个错误:没有待处理的刷新请求!,当然还有一个错误:未满足的请求:GET(因为尚未发送任何内容)。我观察网络​​请求,果然,即使我删除了模拟后端,也没有发送任何请求。

我注释掉了一些东西,重组了一些东西,尝试了很多其他例子,但没有成功。有人可以帮助我吗?

最佳答案

像往常一样,当我 talk to the duck ,问题已解决。

原来我使用的是 v1.1.0 中的 angular-mocks.js。我的 angular.js 版本是 1.2.9。

捂脸。

检查您的版本、 future 的读者,并为自己节省几个小时。

关于javascript - $httpBackend 模拟未发送请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25297344/

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