问题描述
- angular http 服务模块 测试问题
-
服务模块代码为
/*
* 向后台GET数据
*/
this.Get = function (url, data, successCb, errCb) {
$http({
method: 'GET',
url: url,
params: data
}).success(function (response, status, headers, config) {
if (successCb && typeof successCb === 'function') {
successCb(response, status, headers, config);
}
}).error(function (response) {
if (errCb && typeof errCb === 'function') {
errCb(response);
}
});
};/* * 向后台Post数据 */ this.Post = function (url, data, successCb, errCb) { $http.post(url, data).success(function (response, status, headers, config) { if (successCb && typeof successCb === 'function') { successCb(response, status, headers, config); } }).error(function (response) { if (errCb && typeof errCb === 'function') { errCb(response); } }); }; 测试服务代码为: describe('Service: Ajax', function () { // instantiate service var Ajax, $http, $httpBackend, responseData; // load the service's module beforeEach(module('coursewareApp.services.Ajax')); beforeEach(inject(function (_Ajax_, _$http_, _$httpBackend_) { Ajax = _Ajax_; $http = _$http_; $httpBackend = _$httpBackend_; })); afterEach(function () { $httpBackend.verifyNoOutstandingExpectation(); $httpBackend.verifyNoOutstandingRequest(); }); it('should do something', function () { expect(!!Ajax).toBe(true); console.log($httpBackend); // 设置期待请求和响应 $httpBackend .when('get', '/ajaxGet?id=0') .respond([{name: 'test1'}, {name: 'test2'}]); $httpBackend .when('post', '/ajaxPost', function (data) { console.log(data); }) .respond({status: 'success'}); // 调用测试代码 Ajax.Get('/ajaxGet', //{name: 'data-123'}, function (response, status) { responseData = response; }, function (response) { console.log(response); });
// Ajax.Post('http://localhost:8080/ajaxPost',
// {data: 'test-data'},
// function () {},
// function () {});// 模拟响应 $httpBackend.flush(); // 核实结果 //expect(responseData.length).toEqual(2); console.log(responseData); });
});
报错 Error: Unexpected request: GET /ajaxGet No more request expected 有谁知道应该怎么解决???
解决方案
$httpBackend
.when('get', '/ajaxGet?id=0')
.respond([{name: 'test1'}, {name: 'test2'}]);
修改为:
$httpBackend
.when('get', '/ajaxGet')
.respond([{name: 'test1'}, {name: 'test2'}]);
时间: 2024-10-31 06:29:15