如何用Catch模拟Angular JS承诺,最后用于单元测试

时间:2017-11-08 13:43:45

标签: javascript angularjs unit-testing phantomjs karma-jasmine

我向AngularJS Promise添加了catch以处理异常。它运行良好,但现有的Jasmine单元测试失败,因为模拟需要相应更改。

请找到代码。 在现有的API调用中,我添加了catch和handleerror函数。

function calAPI(){
GetAPIData(request)
.then(updatedata)
[catch](handleError)    
[finally](dofinaltask();)
}

function handleError(){

//calling again the same API if the first request fails.

GetAPIData(request)
.then(updatedata)
[finally] (dofinaltask();)

}

UNit Test的现有模拟

GetAPIData: function(){
return {then: function() {return { finally: function(){ } }; } };
}

我在这个

上添加了捕获
GetAPIData: function(){
return {then: function() {return { catch: function(){ }, finally: function(){ } }; } };
}

但是单元测试会给出错误,如下所示

TypeError: undefined is not constructor (evaluating GetAPIData(request).then(updatedata)[catch](handleError)[finally](dofinaltask();)

请帮我修改模拟或以其他方式捕捉

0 个答案:

没有答案