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_Filter_Scope_Karma Runner_Karma Jasmine - Fatal编程技术网

Angularjs 单元测试用作筛选器的作用域函数

Angularjs 单元测试用作筛选器的作用域函数,angularjs,filter,scope,karma-runner,karma-jasmine,Angularjs,Filter,Scope,Karma Runner,Karma Jasmine,我需要在控制器中编写一个作用域函数,作为过滤器 $scope.filterR = function(s) { return function(c) { for (var prop in c) { if (c[prop].toSomething() >= 0) { return c; break; } } } } 这就是我使用它的方式 <d

我需要在控制器中编写一个作用域函数,作为过滤器

  $scope.filterR = function(s) {

    return function(c) {
        for (var prop in c) {
          if (c[prop].toSomething() >= 0) {
            return c;
            break;
          }
        }
    }
  }
这就是我使用它的方式

<div ng-repeat="c in cus | filter: filterR(s)">
        </div>

过滤器工作得很好,但是为它编写测试给了我一个问题。非常感谢您的帮助。

最好使用真实范围进行测试,除非已知它不是:

var $scope = $rootScope.$new();
filterResults应返回一个函数。的确如此

var filterResultsFn = $scope.filterResults('some_data');
expect(filterResultsFn).toEqual(jasmine.any(Function));
expect(filterResultsFn(...)).toEqual(...);
var filterResultsFn = $scope.filterResults('some_data');
expect(filterResultsFn).toEqual(jasmine.any(Function));
expect(filterResultsFn(...)).toEqual(...);