Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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 由于回调函数缺少参数,测试用例失败_Angularjs_Jasmine_Karma Jasmine_Karma Coverage - Fatal编程技术网

Angularjs 由于回调函数缺少参数,测试用例失败

Angularjs 由于回调函数缺少参数,测试用例失败,angularjs,jasmine,karma-jasmine,karma-coverage,Angularjs,Jasmine,Karma Jasmine,Karma Coverage,我必须使用karma为以下代码编写一个测试用例 $scope.getUserDetails = function (param) { Api.getData(param).then(function (result) { Api.getVal(result).then(function (data) { var display = Api.userDetails(result.id, result.name); $scope

我必须使用karma为以下代码编写一个测试用例

$scope.getUserDetails = function (param) {
    Api.getData(param).then(function (result) {
        Api.getVal(result).then(function (data) {
            var display = Api.userDetails(result.id, result.name);
            $scope.username = display.name;     
        });
    });
};
但我面临的问题是,由于回调函数缺少参数,导致测试用例失败。我尝试了很多方法。但由于result.id未定义,测试用例失败。下面只是我的测试用例的一个框架。”“apiCall”在BEFOREACH中定义

it('should test the getData()', function () {
    var user = 'John';
    scope.getUserDetails(123);
    deferred.resolve(user);
    spyOn(apiCall, 'getData').and.returnValue(deferred.promise);
});

你在哪里解决承诺?可能您必须模拟此变量。我猜您的
user
应该看起来更像:
user:{id:'123',name:'John'}
您的
user
测试中的
响应是code@maurycy:实际上我是这样定义用户的。但问题是回调值并没有进入内部函数。上面的测试用例中没有编写内部函数的测试用例。谢谢。。。