Angularjs 带回调的单元测试方法
我有一个工厂,它有一个执行$http调用的方法。它需要两个obj参数和4个回调。我如何使用Karma-Jasmine对方法及其回调进行单元测试?堆栈上的所有其他答案都不能帮助我进行回调Angularjs 带回调的单元测试方法,angularjs,unit-testing,jasmine,karma-jasmine,Angularjs,Unit Testing,Jasmine,Karma Jasmine,我有一个工厂,它有一个执行$http调用的方法。它需要两个obj参数和4个回调。我如何使用Karma-Jasmine对方法及其回调进行单元测试?堆栈上的所有其他答案都不能帮助我进行回调 app.factory('somefactory', ['$http','$rootScope','dependency', function($http, $rootScope,dependency){ var factory = { //two obj params and 4 callback parma
app.factory('somefactory', ['$http','$rootScope','dependency',
function($http, $rootScope,dependency){
var factory = {
//two obj params and 4 callback parmas
method:function(obj1,obj2,succCallbk,failureCallbk,errCallbk,completeCallbk){
$http({
method: obj.method,
url: url,
data: requestData
}).success(function(data, status, headers, config){
if(someCondition){
_succCallbk(data, status);
}
if(someCondition){
_completeCallbk(data, status);
}
})
.error(function(err){
if(someCondition){
_errCallbk()}
})
}
};
return factory;
})
回调问题的可能重复之处在于,它们迫使您将控制流的责任推迟到正在调用的异步函数。承诺可以解决这个问题。不要向基于承诺的API添加回调。看见另见。使用
.then
和.catch
方法代替。这不是我的代码库。所以我至少现在不能编辑它。我认为这个项目使用的是Angular 1.3。我知道.success和.error在angular-