首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jasmine测试AngularJS $http

Jasmine测试AngularJS $http
EN

Stack Overflow用户
提问于 2013-05-30 03:34:33
回答 1查看 8.5K关注 0票数 9

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

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

代码语言:javascript
复制
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来运行测试)

EN

回答 1

Stack Overflow用户

发布于 2013-08-12 23:38:01

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

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

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16822387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档