アタッチされている要素に JavaScript イベント バインディングを追加する、さまざまなカスタム angularjs ディレクティブの単体テストと e2e テストを作成したいと考えています。
テストでは、jQuery メソッドを使用してクリック イベントと dblclick イベントを簡単にシミュレートできます。
element("#id").click();
ただし、マウスオーバー、マウスアウト、およびコンテキストメニュー イベントもバインドしていますが、これらを e2e テストで呼び出す方法は見つかりませんでした。以下のコードは、私が取っているアプローチを示しています。
it('should show a context menu when the user right clicks on a grid row',
function () {
//not currently triggering the context menu
var outerRow = element(".ngRow", "outer row");
var row = element(".ngRow:first > div", "row");
angular.element(row).triggerHandler("contextmenu");
expect(outerRow.attr("class")).toContain("open");
});
テストで contextmenu イベントを発生させるにはどうすればよいですか?
同様に、ディレクティブの単体テストでは、イベント バインディングが要素に関連付けられているかどうかを検出できるようにしたいと考えています。
どうすればこれを達成できますか?