Angular 如何在角度测试中检查管道返回数组的长度?
我有一个管道,它过滤给定数组中的关键字并返回任何匹配项。在本例中,关键字“Music”应返回3个结果。我如何在测试中检查它是否返回3个结果?是否可以不使用包含关键字“Music”的元素复制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
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个