Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.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_Unit Testing_Jasmine_Karma Jasmine - Fatal编程技术网

Angularjs 带回调的单元测试方法

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

我有一个工厂,它有一个执行$http调用的方法。它需要两个obj参数和4个回调。我如何使用Karma-Jasmine对方法及其回调进行单元测试?堆栈上的所有其他答案都不能帮助我进行回调

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-