【问题标题】:Testing Filter with Jasmine + Angular + Error: [$injector:unpr] Unknown provider使用 Jasmine + Angular + 错误测试过滤器:[$injector:unpr] 未知提供者
【发布时间】:2015-09-29 00:47:37
【问题描述】:

这是我的 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

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

【问题讨论】:

  • 如果您尝试$filter('flickrURL') 会怎样?
  • 天啊,很多!!!我讨厌错过这么愚蠢的事情:(
  • 哦,太好了:)那我会做一个(非常简短的)答案。

标签: jasmine angularjs-filter


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-01-23
    • 2020-01-29
    • 2016-03-26
    • 1970-01-01
    • 2014-04-10
    • 1970-01-01
    • 2017-04-16
    • 2017-04-25
    • 1970-01-01
    相关资源
    最近更新 更多