Angular 如何在角度测试中检查管道返回数组的长度?

Angular 如何在角度测试中检查管道返回数组的长度?,angular,karma-jasmine,angular-test,Angular,Karma Jasmine,Angular Test,我有一个管道,它过滤给定数组中的关键字并返回任何匹配项。在本例中,关键字“Music”应返回3个结果。我如何在测试中检查它是否返回3个结果?是否可以不使用包含关键字“Music”的元素复制dummyData[] 测试规范 describe('ArrayFilterPipe', () => { let pipe: ArrayFilterPipe; const dummyData = [ {id: 1, name: 'Rap Music'}, {id

我有一个管道,它过滤给定数组中的关键字并返回任何匹配项。在本例中,关键字“Music”应返回3个结果。我如何在测试中检查它是否返回3个结果?是否可以不使用包含关键字“Music”的元素复制
dummyData[]

测试规范

describe('ArrayFilterPipe', () => {

    let pipe: ArrayFilterPipe;

    const dummyData = [
      {id: 1, name: 'Rap Music'},
      {id: 2, name: 'Hip Hop'},
      {id: 3, name: 'Country Music'},
      {id: 4, name: 'Radio Stations'},
    ];

    it('the keyword "Music" should return 3 results', () => {
        expect(pipe.transform(dummyData, 'Music')).toEqual(); // Is it possible to check the length or do I have to create a copy of dummyData with only the elements that contain 'Music'?
    });

 }
阵列过滤管

export class ArrayFilterPipe implements PipeTransform {

  transform(data[], keyword: string) {
    keyword = keyword.toLowerCase();
    return data.filter(x => {
      return x.name.toLowerCase().includes(keyword);
    });
  }
}

您没有在任何地方创建实例或
ArrayFilterPipe
。创建
ArrayFilterPipe
的实例后,可以检查长度,如下所示

description('ArrayFilterPipe',()=>{
常数管道=新阵列过滤器管道();
常数dummyData=[
{id:1,名称:'说唱音乐'},
{id:2,名字:'嘻哈'},
{id:3,名字:'乡村音乐'},
{id:4,名称:'无线电台'},
];
它('关键字“Music”应该返回2个结果',()=>{
expect(pipe.transform(dummyData,'Music').length);
});
});

另外,根据您提供的
dummyData
,它应该返回2个结果,而不是3个。

您没有在任何地方创建实例或
ArrayFilterPipe
。创建
ArrayFilterPipe
的实例后,可以检查长度,如下所示

description('ArrayFilterPipe',()=>{
常数管道=新阵列过滤器管道();
常数dummyData=[
{id:1,名称:'说唱音乐'},
{id:2,名字:'嘻哈'},
{id:3,名字:'乡村音乐'},
{id:4,名称:'无线电台'},
];
它('关键字“Music”应该返回2个结果',()=>{
expect(pipe.transform(dummyData,'Music').length);
});
});
另外,根据您提供的
dummyData
,它应该返回2个结果,而不是3个