茉莉花试验NG-的mouseenter [英] Jasmine Test for ng-mouseenter
问题描述
我无法测试我的指令与NG-的mouseenter指令。
我想考几件事情,但首先,我需要测试提供的方法,NG-的mouseenter被调用。
我的测试:
描述('悬停测试,函数(){
它('的triggerPopover方法应该算得上悬停,函数(){
spyOn($范围,'triggerPopover');
VAR ARS =的jQuery(view.find('article.the级-IM-找换'));
。jQuery的(ARS [0])触发('的mouseenter');
期待($ scope.triggerPopover).toHaveBeenCalled();
});
});
我的指令使用说明:
<物品我的指示性NG-的mouseenter =triggerPopover();>< /条>
结果:
要被称为预计间谍triggerPopover。
在NG-的mouseenter的东西似乎并不被调用。
块引用>解决方案
的mouseenter
作为原生DOM事件并不被所有的浏览器支持:的 http://www.quirksmode.org/dom/events/index.html
NG-的mouseenter
建立在鼠标悬停
事件,所以你可以触发它是这样的:的jQuery(ARS [0])触发('鼠标悬停');
I'm having trouble testing my directive with an ng-mouseenter directive.
I'd like to test several things, but first off, I need to test that the method supplied to ng-mouseenter is called.
my test:
describe('hover tests', function () { it('the triggerPopover method should be called on hover', function() { spyOn($scope, 'triggerPopover'); var ars = jQuery(view.find('article.the-class-im-looking-for')); jQuery(ars[0]).trigger('mouseenter'); expect($scope.triggerPopover).toHaveBeenCalled(); }); });
my directive use:
<article my-directive ng-mouseenter="triggerPopover();"></article>
Result:
Expected spy triggerPopover to have been called. The ng-mouseenter stuff doesn't seem to get called
解决方案
mouseenter
as a native DOM event is not supported by all browsers: http://www.quirksmode.org/dom/events/index.html
ng-mouseenter
builds on themouseover
event, so you can just trigger it like this:jQuery(ars[0]).trigger('mouseover');
这篇关于茉莉花试验NG-的mouseenter的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!