如何在指令的单元测试中模拟角度转换过滤器

jok*_*omo 20 unit-testing angularjs angular-translate angular-filters

在我的指令模板中,我需要使用角度平移过滤器:

    <label for="data-source-btn">
      <span id="data-source-btn-span"></span>
      {{'Data Source' | translate}}
    </label>
Run Code Online (Sandbox Code Playgroud)

然后在我对该指令的单元测试中,我收到错误:

未知提供者:translateFilterProvider < - translateFilter

我试过注射$filter并获得$translate$translate = $filter('translate');不解决问题-这是真的用于测试过滤器

我可以注入模块pascalprecht.translate,但这很重要.我如何最好地模拟过滤器?

jok*_*omo 50

下面是一个如何模拟过滤器的简单示例.

var mockTranslateFilter;

beforeEach(function() {
  module(function($provide) {
    $provide.value('translateFilter', mockTranslateFilter);
  });

  mockTranslateFilter = function(value) {
    return value;
  };
});
Run Code Online (Sandbox Code Playgroud)