edd*_*iec 121

注入$filter然后调用它$filter('filterName')(input, options);

所以要测试这个模板的等价物 {{ foo | testFilter:capitalize }}

describe('The test filter', function () {
  'use strict'; 

  var $filter;

  beforeEach(function () {
    module('myTestFilterModule');

    inject(function (_$filter_) {
      $filter = _$filter_;
    });
  });

  it('should capitalize a string', function () {
    // Arrange.
    var foo = 'hello world', result;

    // Act.
    result = $filter('testFilter')(foo, 'capitalize');

    // Assert.
    expect(result).toEqual('HELLO WORLD');
  });
});
Run Code Online (Sandbox Code Playgroud)


Ith*_*lon 13

您可以注入$ filter并加载要测试的过滤器.然后通过您注入的过滤器传递要过滤的参数,并且您"期望"您需要的内容.这是一个例子:

describe('Filter test', function(){

  var filter;

  beforeEach(function(){
    module.apply(moduleName);

    inject(function($injector){
      filter = $injector.get('$filter')('nameOfTheFilter');
    });
  });

  it('should filter the parameters passed', function(){
    expect(filter(parameterToBeFiltered)).toBe(Result);
  });
});
Run Code Online (Sandbox Code Playgroud)