我有一个工厂来执行get请求,我想测试一下.不幸的是,业力测试告诉我$ httpBackend没有定义响应.
AngularJs 1.2.14,Jasmine 2.0,Karma 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)
Pascal Le Me.. 25
您必须定义预期响应以及预期请求.它将具有以下形式:
$httpBackend.expectGET('/boxlist').respond(HTTP_STATUS_CODE, EXPECTED_RESPONSE);
HTTP_STATUS_CODE是一个整数.EXPECTED_RESPONSE是要返回的值(通常是Object Literal).
您可以只定义其中一个.
有关更多信息,请查看ngMock httpBackend文档.
您必须定义预期响应以及预期请求.它将具有以下形式:
$httpBackend.expectGET('/boxlist').respond(HTTP_STATUS_CODE, EXPECTED_RESPONSE);
HTTP_STATUS_CODE是一个整数.EXPECTED_RESPONSE是要返回的值(通常是Object Literal).
您可以只定义其中一个.
有关更多信息,请查看ngMock httpBackend文档.