如何使用Jasmine

时间:2015-08-21 11:05:24

标签: angularjs jasmine tooltipster

我的Angular代码中的指令的link函数中有以下构造(工具提示库可以在http://iamceege.github.io/tooltipster/下找到):

scope.$on(MY_EVENTS.DATA_RETRIEVED, function(event) {
    $timeout(function() {
        var badge = element.find('.tooltip-hook');

        badge.tooltipster({
            content: $('Default tooltip'),
            contentAsHtml: true,
            theme: 'tooltipster-light',
            functionBefore: function(origin, continueTooltipster) {
                continueTooltipster();

                origin.tooltipster('content', scope.getTooltip());
            }
        });
    });
});

我遇到的问题是,当我使用Jasmine测试此代码时,覆盖率报告者会抱怨,因为我的测试未涵盖作为functionBefore传递的函数。

如何在使用Jasmine进行单元测试是否在显示工具提示之前调用此函数(这在技术上不是测试我的代码而是工具提示代码)和(这是关于我的代码)也是内部的语句功能执行?为了测试后者,我必须在已经匿名和本地函数的参数上获得间谍。

我知道我可以使用jasmine-jquery插件模拟一个mouseenter事件,它会激发工具提示显示,但是如何用Jasmine单元测试覆盖functionBefore

0 个答案:

没有答案