栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

AngularJS + Jasmine:$ httpBackend不能按预期工作

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

AngularJS + Jasmine:$ httpBackend不能按预期工作

让我们分别讨论每个错误:

错误:没有等待刷新的请求!

发生这种情况是因为没有通过请求

$httpBackend
,所以没有要刷新的东西。那是因为您在实例化
UserService
之前
$httpBackend
,所以Angular不知道它应该使用它而不是real
$http
。如果您检出控制台,您会看到正在发送真实请求。

错误:请求不满意:GET
https://api.github.com/users/wilk

与上述相同的原因。由于

$httpBackend
服务未使用该服务,因此您创建的期望将永远无法实现。

考虑以上所有因素后,重构的规格如下:

describe ('Service: UserService', function () {    var UserService,        GITHUB_API_URL,        GITHUB_USER,        $httpBackend;    beforeEach(function() {      module('plunker');      inject(function( _$httpBackend_, _UserService_, _GITHUB_API_URL_, _GITHUB_USER_) {        $httpBackend = _$httpBackend_;        UserService = _UserService_;        GITHUB_API_URL = _GITHUB_API_URL_;        GITHUB_USER = _GITHUB_USER_;      });    });    afterEach (function () {        $httpBackend.verifyNoOutstandingExpectation ();        $httpBackend.verifyNoOutstandingRequest ();    });    describe ('when populate method is called', function () {        it ('should returns user data', function () { $httpBackend   .whenGET(GITHUB_API_URL + '/users/' + GITHUB_USER)   .respond ({       login: GITHUB_USER,       id: 618009   }); UserService.populate(GITHUB_USER); $httpBackend.flush(); expect(UserService.data().login).toBe(GITHUB_USER); expect(UserService.data().id).toBe(618009);        });    });});

柱塞

注意:我已经更改了一些注入方式,但是只要您先创建

$httpBackend
其他内容,您的操作就可以了。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/633268.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号