我在我的 Angular 代码中的指令的链接函数中有以下构造(工具提示库可以在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 事件,该插件应该会引发工具提示出现,但是如何functionBefore
使用 Jasmine 单元测试来覆盖呢?