我有一个工厂来执行一个获取请求,我想测试.不幸的是业界测试告诉我,$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文档了解更多信息.