unit-testing - Angular 2 单元测试 : How do I test for the context menu and double click events?

标签 unit-testing angular

我只是想让它工作

 let fixture: any = TestBed.createComponent(ComponentBeingTested);
        fixture.detectChanges();
        const contextMenuEl: DebugElement[] =  fixture.debugElement.queryAll(By.css("td"); 
        contextMenuEl[0].nativeElement.oncontextmenu();
        const doubleClickEl: DebugElement[] =  fixture.debugElement.queryAll(By.css("li"); 
        doubleClickEl[0].nativeElement.ondblclick();

当这是组件的模板时:

<td (contextmenu)="contextMenuFunction">Context Menu</td>
<li (dblclick)="dblClickFunction">Double click</li>

我收到错误 contextMenuEl[0].nativeElement.oncontextmenu is not a function and doubleClickEl[0].nativeElement.ondblclick is not a function

应用程序功能按预期运行。是的,如果我将这些事件更改为在模板中单击并在测试中单击,它在测试中都有效。

最佳答案

这是触发上下文菜单更改的方法:

 contextMenuEl[0].triggerEventHandler("contextmenu", new  MouseEvent("contextmenu"));
 fixture.detectChanges();

这是触发双击更改的方法:

doubleClickEl[0].triggerEventHandler("dblclick", new MouseEvent("dblclick"));
fixture.detectChanges();

关于unit-testing - Angular 2 单元测试 : How do I test for the context menu and double click events?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40537867/

相关文章:

http-headers - 请求未通过访问控制检查 : No 'Access-Control-Allow-Origin'

angularjs - Protractor:测试窗口滚动行为

javascript - react 应用程序 : Jest encountered an unexpected token

c# - 是否可以模拟 Activator.GetObject()?

angular - 检查 ng bootstrap modal 是否已经打开

html - 如何获取带有复选框的下拉菜单

asp.net - Angular 4 : Can't bind to 'ngModel' since it isn't a known property of 'input'

c# - 单元测试项目 Azure Functions 无法加载文件或程序集 'Newtonsoft.Json'

java - 如何在 JUnit 测试期间在 @Configuration 类内部 Autowiring ?

html - 证明内容 : center does not work in IE11