我想为各种自定义 angularjs 指令编写单元和 e2e 测试,这些指令将 javascript 事件绑定添加到它们所附加的元素。
在测试中,使用 jQuery 方法很容易模拟 click 和 dblclick 事件。
element("#id").click();
但是,我还绑定了 mouseover、mouseout 和 contextmenu 事件,并且还没有找到在 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 事件?
同样,在指令的单元测试中,我希望能够检测事件绑定是否已附加到元素。
我怎样才能做到这一点?