加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Jasmine测试AngularJS $http

发布时间:2020-12-17 07:29:14 所属栏目:安全 来源:网络整理
导读:我正在尝试使用Jasmine异步测试来测试AngularJS服务中包含的REST API.我知道,我应该是,并且正在运行服务器上的API测试,并使用模拟$httpBackend来测试服务,但我仍然想知道如何在需要的地方进行异步测试. 我遇到的问题是我的延期(由$http返回)似乎永远无法解决
我正在尝试使用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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读