Angularjs 单元测试中的动态$httpBackend响应
我创建了一个模拟后端并允许内容分页的服务:Angularjs 单元测试中的动态$httpBackend响应,angularjs,unit-testing,jasmine,httpbackend,Angularjs,Unit Testing,Jasmine,Httpbackend,我创建了一个模拟后端并允许内容分页的服务: angular.module('testedApp') .service('mockedResponses', function mockedResponses() { var _mediaResponse = {"total":84,"media":[...], groups: {}, keywords: {}}; return { getMediaResponse: function(method, ur
angular.module('testedApp')
.service('mockedResponses', function mockedResponses() {
var _mediaResponse = {"total":84,"media":[...], groups: {}, keywords: {}};
return {
getMediaResponse: function(method, url, data, headers){
var mediaResponse = angular.copy(_mediaResponse),
start = headers.skip_current || 0,
end = headers.limit || 8;
mediaResponse['media'] = _mediaResponse['media'].splice(start, end);
return mediaResponse;
}
}
});
测试:
我得到的不是预期的数据(媒体),而是作用域上的“null”,尝试访问null的属性会引发异常。好的,找到了解决方案,根据,函数的响应应该是以下stascure[(str)StatusCode,(str,obj)response,(obj)Headers]的数组 以下代码工作:
angular.module('testedApp')
.service('mockedResponses', function mockedResponses() {
var _mediaResponse = {"total":84,"media":[...], groups: {}, keywords: {}};
return {
getMediaResponse: function(method, url, data, headers){
var mediaResponse = angular.copy(_mediaResponse),
start = headers.skip_current || 0,
end = headers.limit || 8;
mediaResponse['media'] = _mediaResponse['media'].splice(start, end);
return arguments.length ? ['200', mediaResponse, {}] : mediaResponse;
}
}
});
angular.module('testedApp')
.service('mockedResponses', function mockedResponses() {
var _mediaResponse = {"total":84,"media":[...], groups: {}, keywords: {}};
return {
getMediaResponse: function(method, url, data, headers){
var mediaResponse = angular.copy(_mediaResponse),
start = headers.skip_current || 0,
end = headers.limit || 8;
mediaResponse['media'] = _mediaResponse['media'].splice(start, end);
return arguments.length ? ['200', mediaResponse, {}] : mediaResponse;
}
}
});