我有一个工厂来执行一个获取请求,我想测试.不幸的是业界测试告诉我,$httpBackend没有定义回应.
AngularJs 1.2.14,
茉莉2.0,
羯磨0.12.0
这是我要测试的模块:
var appFactory = angular.module('appFactory',[]); appFactory.factory('boxListService',function($http){ return{ getList: function(){ return $http.get('/boxlist').then(function(result){ return result.data; }); } }; });
我的测试是这样的:
describe('Module-Test',function() { beforeEach(module('appFactory')); it('should call $http.get in getList',inject(function (boxListService,$httpBackend){ $httpBackend.expectGET('/boxlist'); boxListService.getList(); $httpBackend.flush(); })); });
信息:
Error: No response defined ! at $httpBackend (D:/nodeJS/host/test_app/src/public/js/libs/angular/angular-mock.js:1206:13)
您必须定义预期响应以及预期请求.它将具有以下形式:
$httpBackend.expectGET('/boxlist').respond(HTTP_STATUS_CODE,EXPECTED_RESPONSE);
HTTP_STATUS_CODE是一个整数.
EXPECTED_RESPONSE是要返回的值(它通常是一个Object Literal).
您只能定义其中之一.
查看ngMock httpBackend文档了解更多信息.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。