我需要一些帮助。 我不明白为什么这个测试不起作用。 我使用@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的提供者!
我的考试有什么问题?
谢谢你的帮助。
答案 0 :(得分:0)
在这一行:
inject([TreeHelperPipe], (_TreeHelperPipe: any) => {
您正在尝试注入管道,但在此之前您没有创建任何模块。这就是Angular没有找到你想要注入的管道的原因。
也就是说,在这里你不需要一个模块,你可以像在这里一样创建一个实例:
pipe = new TreeHelperPipe();
然后拨打pipe.transform(your, arguments, here)
进行断言(不要忘记删除inject
行。)