Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 单元测试中的动态$httpBackend响应_Angularjs_Unit Testing_Jasmine_Httpbackend - Fatal编程技术网

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;
        }
    }
});