无法生成更新过滤器的事件

问题描述 投票:0回答:0

我编写了一个单元测试,在 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'.
angular unit-testing jasmine karma-jasmine
© www.soinside.com 2019 - 2024. All rights reserved.