NullInjectorError:没有TreeHelperPipe的提供程序

时间:2018-01-05 17:09:00

标签: jasmine karma-jasmine angular5 angular-pipe

我需要一些帮助。 我不明白为什么这个测试不起作用。 我使用@pipe。

import { inject } from '@angular/core/testing';
import { TreeHelperPipe } from 'app/shared/components/material-tree/tree-helper.pipe';

describe('Tree helper', () => {
  let pipe: TreeHelperPipe;

  beforeEach(() => {
    pipe = new TreeHelperPipe();
  });

  describe('truncateString', () => {
    it(
      `should have string truncate and replace some part by dots`,
      inject([TreeHelperPipe], (_TreeHelperPipe: any) => {
        const item =
          'http://namespace-example.fr/service/technique/version/ged-sharepoint/1.1';

        const expectedItem =
          'http://namespace-example.fr/s...e/technique/version/ged-sharepoint/1.1';

        expect(() => {
          _TreeHelperPipe.transform(item, 60, '...').toBe(expectedItem);
        });
      })
    );
  });
});
  

错误:StaticInjectorError [TreeHelperPipe]:NullInjectorError:否   TreeHelperPipe的提供者!

我的考试有什么问题?
谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

在这一行:

inject([TreeHelperPipe], (_TreeHelperPipe: any) => {

您正在尝试注入管道,但在此之前您没有创建任何模块。这就是Angular没有找到你想要注入的管道的原因。

也就是说,在这里你不需要一个模块,你可以像在这里一样创建一个实例:

pipe = new TreeHelperPipe();

然后拨打pipe.transform(your, arguments, here)进行断言(不要忘记删除inject行。)