我编写了一个单元测试,在 keyup 事件后更新过滤器。对我来说完全没问题,但过滤器没有更新。我无法弄清楚我的代码有什么问题,因此我请求您的帮助。请您检查以下组件和单元测试,并让我知道错误在哪里。非常感谢。
组件.TS
@ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;
@ViewChild(MatSort, { static: true }) sort: MatSort;
@ViewChild('filter', { static: true }) filter: ElementRef;
ngOnInit(): void {
this.load();
Observable.fromEvent(this.filter.nativeElement, 'keyup').pipe(
debounceTime(150),
distinctUntilChanged()
).subscribe(() => {
if (!this.dataSource) { return; }
this.dataSource.filter = this.filter.nativeElement.value
});
}
单元测试.规格.TS
it('should filter dataSource on keyup event', fakeAsync(() => {
const filterValue = 'example filter value';
component.filter.nativeElement.value = filterValue;
const event = new KeyboardEvent('keyup', { key: filterValue });
component.filter.nativeElement.dispatchEvent(event);
fixture.detectChanges();
tick(150);
fixture.detectChanges();
tick();
expect(mockDataSource.filter).toBe(filterValue);
}));
错误
Error: Expected '' to be 'example filter value'.