服务模块代码为
/*
* 向后台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
有谁知道应该怎么解决???