用于ng-mouseenter的茉莉花测试

时间:2014-10-08 20:31:50

标签: javascript angularjs jasmine karma-jasmine

我在使用ng-mouseenter指令测试我的指令时遇到了麻烦。

我想测试几件事,但首先,我需要测试调用提供给ng-mouseenter的方法。

我的测试:

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();
        });
    });

我的指令使用:

<article my-directive ng-mouseenter="triggerPopover();"></article>

结果:

  

预期的间谍触发器已被调用。   ng-mouseenter的东西似乎没有被称为

2 个答案:

答案 0 :(得分:0)

如果您使用PhantomJS进行测试,那么在普通浏览器中工作的某些鼠标事件将无效。 如果确实如此,您可以使用Chrome或Firefox运行测试,或者针对相关问题为this answer实施类似的解决方案。

答案 1 :(得分:0)

所有浏览器都不支持

mouseenter作为原生DOM事件:http://www.quirksmode.org/dom/events/index.html

ng-mouseentermouseover事件为基础,因此您可以像这样触发它:

jQuery(ars[0]).trigger('mouseover');