2016-11-10 6 views
2

これはコンポーネントのテンプレートであるとき、私はちょうどこれが角度2単位テスト:コンテキストメニューとダブルクリックイベントをテストするにはどうすればよいですか?

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が機能してdoubleClickElないエラーが発生します0] .nativeElement.ondblclickは関数ではありません

アプリケーションの機能は期待どおりに機能します。そして、はい、これらのイベントをテンプレート内をクリックして変更してテストすると、すべてがテストで機能します。

答えて

0

これは、コンテキストメニューの変更をトリガする方法である:

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

これは、ダブルクリックの変更トリガする方法です:

doubleClickEl[0].triggerEventHandler("dblclick", new MouseEvent("dblclick")); 
fixture.detectChanges(); 
関連する問題