我正在尝试使用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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。