如何在Angular 2 Karma中模拟双击事件

6
我有一个HTML行元素,如下所示:
<tr class="worktask" (click)="setCurrentTask($event, task)" (dblclick)="openTask($event, task)">some content</tr>

现在我想测试当有人双击表格中的一行元素时,是否会调用openTask函数。我的尝试方法是:
it('should be able to double click on a row to open work stream', async(() => {
        fixture.detectChanges();
        comp.tasks=workflowServiceStub.getTasks(); //get dummy task
        fixture.detectChanges();                   // update view  based on dummy task
        spyOn(comp, 'openTask');                   //spy on openTask function if it is called
        let workTaskRow = fixture.debugElement.nativeElement.querySelectorAll('.worktask'); //getting task row

        workTaskRow[0].dblclick(); 
        fixture.whenStable().then(() => {
           expect(comp.openTask).toHaveBeenCalled();
        })
    }));

但是当我运行测试时,会出现一个错误提示:
workTaskRow[0].dblclick is not a function

我尝试使用 .click() ,看起来似乎可以工作,不确定是否可以触发双击来测试 openTask() 函数是否被调用。


答案在这里:https://dev59.com/DZzha4cB1Zd3GeqPEWVR - Pierre Trollé
1个回答

8

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接