使用Jasmine + Angular +错误测试过滤器:[$ injector:unpr]未知提供程序

时间:2015-07-10 09:57:10

标签: jasmine angularjs-filter

这是我的app.js模块部分 角

  .module('flickrNgSpaApp', [
    'ngAnimate',
    'ngCookies',
    'ngResource',
    'ngRoute',
    'ngSanitize',
    'ngTouch',
    'ngMock'
  ])

我正在使用的过滤器(flickrNgSpaApp)

'use strict';

angular.module('flickrNgSpaApp')
  .filter('flickrURL', function () {
    return function (input, dimension) {
      var url = 'http://farm{farm-id}.staticflickr.com/{server-id}/{id}_{secret}_[mstzb].jpg';
      return  url.replace('{farm-id}', input.farm)
        .replace('{server-id}', input.server)
        .replace('{id}', input.id)
        .replace('{secret}', input.secret)
        .replace('[mstzb]', dimension);
    };
  });

过滤器单元测试由于某种原因失败:)

'use strict';
describe('Filter: flickrURLFilter', function () {
var $filter;
 beforeEach(function(){module('flickrNgSpaApp')});
 beforeEach(inject(function (_$filter_) {
    $filter=_$filter_;
  }));
  it('returns null',function(){
    var input={
      farm:"1",
      server:"2",
      id:"3",
      secret:"4",
      dimension:"q"
     };
    expect($filter('flickrURLFilter')(input, 'q')).not.toEqual(0);
  })
});

和错误:

Chrome 43.0.2357 (Windows 8.1 0.0.0) Filter: flickrURLFilter returns null FAILED
        Error: [$injector:unpr] Unknown provider: flickrURLFilterFilterProvider
<- flickrURLFilterFilter

任何人都可以看看并给我任何提示......我将不胜感激! :)

1 个答案:

答案 0 :(得分:1)

使用过滤器的名称,并将$filter('flickrURLFilter')替换为$filter('flickrURL')