Angularjs 由于回调函数缺少参数,测试用例失败
我必须使用karma为以下代码编写一个测试用例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
$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:实际上我是这样定义用户的。但问题是回调值并没有进入内部函数。上面的测试用例中没有编写内部函数的测试用例。谢谢。。。