gpt4 book ai didi

testing - Jasmine 测试 AngularJS $http

转载 作者:行者123 更新时间:2023-11-28 19:43:37 24 4
gpt4 key购买 nike

我正在尝试使用 Jasmine 异步测试来测试包装在 AngularJS 服务中的 REST API。我知道,我应该并且正在对服务器上的 API 运行测试,并使用模拟 $httpBackend 来测试服务,但我仍然想知道如何在需要的地方进行异步测试。

我遇到的问题是我的延迟(由 $http 返回)似乎永远无法解决。通过服务并尝试简单地使用 $http 有同样的问题。我在这里做错了什么:

describe('Jasmine + Angular + $http', function() {

var injector;

beforeEach(function() {
injector = angular.injector(['ng']);
});

it('can be tested', function() {

injector.invoke(function($http) {

var complete = false;

runs(function() {
$http.get('...').then(function(res) {
complete = true;
});
});

waitsFor(function() {
return complete;
}, 'query to complete', 5000);

runs(function() {
expect(complete).toEqual(true);
});

});

});

});

(我正在使用 grunt-contrib-jasmine 来运行测试)

最佳答案

除非您调用 $httpBackend.flush(),否则 HTTP 请求不会触发。

可在此处找到更多信息:http://docs.angularjs.org/api/ngMock.$httpBackend

关于testing - Jasmine 测试 AngularJS $http,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16822387/

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