没办法测试ngMouseenter?

时间:2013-10-11 23:07:26

标签: angularjs angularjs-e2e

我搜索了文档和谷歌,我正在努力寻找一个如何为ngMouseenter事件编写E2E测试的可靠参考。 Angular的E2E测试工具有element(<selector>).click(),但就其他事件类型而言,我没有看到任何内容。

在我的情况下,mouseenter(和mouseleave)触发了我想要测试的行为,我想其他人也有类似的用例。有没有办法做到这一点?

[编辑]

我在SO:AngularJS: how to invoke event handlers and detect bindings in tests

上找到了角度方案运行器的扩展程序

这允许我这样做:

jqFunction(<selector>, "mouseenter")

并且效果很好。

2 个答案:

答案 0 :(得分:1)

在角度github上查看mouseover pull request,它在v1.1.2 here中合并。也许这会有所帮助吗?

否则,只要您可以使用jQuery触发事件,您就应该能够执行类似

的操作
element(<selector>).query(function(selected, done) {
    selected.trigger('mouseenter');
    done();
});

任何自定义事件。说到这一点,我已尝试在一个plunker测试,似乎无法触发mouseenter,无论是否涉及角度。

答案 1 :(得分:1)

ng-mouseenter指令在内部基于mouseover事件构建。要触发它,只需调用

yourElement.trigger('mouseover');

另见this question