相关疑难解决方法(0)

无法在Angular 2单元测试(Jasmine)中模拟按键事件

我正在使用一个指令来获取用作过滤器文本的输入数据.

这是我在指令中的hostlistener:

@HostListener('input', ['$event.target.value'])
  public onChangeFilter(event: any): void {
    console.log('input event fired, value: ' + event);
    this.columnFiltering.filterString = event;
    this.filterChanged.emit({filtering: this.columnFiltering});
  }
Run Code Online (Sandbox Code Playgroud)

这段代码工作正常,我无法进行单元测试.

我订阅了filterChanged EventEmitter,在我的单元测试中检查了值.

我尝试模拟按键事件来更改值并尝试设置值属性.这些都不适合我.

这是我的spec文件:

describe('Table View', () => {
  let fixture: ComponentFixture<any>;
    let context: TableComponent;
   beforeEach(() => {
     TestBed.configureTestingModule({
          providers: [
            TableComponent,
          ],
          imports: [TableModule],
      });
      fixture = TestBed.createComponent(TableComponent);
      context = fixture.componentInstance;
    });
it('should allow filter', () => {
      const element = fixture.nativeElement;
      context.config = config;
      fixture.detectChanges();

      let tableChangeCount = 0;
      let tableEvent: any;
      context.tableChanged.subscribe((event: any) => …
Run Code Online (Sandbox Code Playgroud)

unit-testing input keypress jasmine angular

18
推荐指数
2
解决办法
3万
查看次数

标签 统计

angular ×1

input ×1

jasmine ×1

keypress ×1

unit-testing ×1