首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >单元测试$(文档).on

单元测试$(文档).on
EN

Stack Overflow用户
提问于 2014-07-08 14:44:58
回答 1查看 466关注 0票数 1

我正在尝试测试一个名为watch的函数,它看起来类似于:

代码语言:javascript
运行
复制
function watch(interaction) {
    $(document).on(interaction.event, interaction.selector, function() {
        ...
    });
}

我的想法是监视$(document).on()并检查它是否与我传递的参数一起调用:

代码语言:javascript
运行
复制
it('should watch events on DOM elements', function() {
    var $doc = $(document);

    spyOn($doc, 'on');

    watch({ event: 'click', selector: '#foo' });

    expect($doc.on).toHaveBeenCalledWith('click', '#foo', jasmine.any(Function));
});

然而,贾斯敏告诉我,$doc.on从未被调用过。我的想法是,这是因为测试中的$doc引用了与$(document)watch()中不同的实例。

如果是这样的话,我如何测试以确保watch()正在正确地连接$(document).on()

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-09 02:51:55

您可以模拟$,这样调用它就可以使用相同的.on模拟方法返回相同的对象。这是有意义的,因为您不想测试jQuery本身。

我还没有嘲笑过茉莉花,所以我不能提供一个具体的例子。您可能想看看jest,它构建在Jasmine之上,默认情况下模拟每个模块:https://facebook.github.io/jest

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24634832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档