【问题标题】:How to add jquery to jasmine/angularjs unittests如何将 jquery 添加到 jasmine/angularjs unittests
【发布时间】:2013-09-29 01:41:16
【问题描述】:

我有一个基于普通 angular.js 代码的项目。我们用茉莉花创建单元测试。但是现在我们需要获取一些 3rd 方组件(一些来自 Angular-Bootstrap 的指令),它们内部也是纯 angular.js,但是为了测试这些组件,使用了一些 jQuery 代码和方法调用。现在很多 3rd 方测试都失败了,但有例外 [object] had no method 'trigger' 之类的东西

所以我的问题是如何在我的测试中包含 jquery,以使第 3 方单元测试有效。 我使用 Karma 运行测试。

【问题讨论】:

    标签: javascript angularjs angular-ui karma-runner


    【解决方案1】:

    只需将 jquery.js 包含到文件数组中 Karma 的配置中作为第一项即可。

    module.exports = function(config) {
      config.set({
    
        // list of files / patterns to load in the browser
        files: [
          'path/to/jquery.js',
          'path/to/angular.js'
          //..rest files      
        ],
    
        //rest karma options
      });
    };
    

    【讨论】:

    • 秒,也许不是第一次。让我试试。
    • 更改配置后是否重新启动业力?您可能需要仔细检查 jQuery 的路径是否正确。它应该可以工作。
    • 感谢您的帮助。是的,这是工作。顺便说一句 - 为什么它应该是第一个?
    • 几个原因: 1. 为什么不呢? jQuery 没有任何依赖关系,但其他脚本依赖它。 2. 如果 Angular 在加载时找不到 jQuery,它将使用其 jQuery lite,而不是增强 jQuery 功能。
    • 还要确保将 jquery 放在首位。它按顺序加载脚本 - 顺序在这里很重要。我一直在纠结为什么我的 .find() 选择器不起作用。
    猜你喜欢
    • 2021-01-25
    • 2015-07-07
    • 2018-09-23
    • 2020-10-29
    • 2013-12-29
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    • 2016-08-05
    相关资源
    最近更新 更多