Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将jquery添加到jasmine/angularjs单元测试_Javascript_Angularjs_Angular Ui_Karma Runner - Fatal编程技术网

Javascript 如何将jquery添加到jasmine/angularjs单元测试

Javascript 如何将jquery添加到jasmine/angularjs单元测试,javascript,angularjs,angular-ui,karma-runner,Javascript,Angularjs,Angular Ui,Karma Runner,我有一个基于纯angular.js代码的项目。我们用jasmine创建unittest。但是现在我们需要获取一些第三方组件(Angular Bootstrap中的一些指令),它们内部也是纯Angular.js,但是为了测试这些组件,我们使用了一些jQuery代码和方法调用。现在很多第三方测试都失败了,比如 [object]没有方法“触发器”之类的东西 所以我的问题是如何将jquery包含到我的测试中,以使第三方UnitTest有效。 我使用Karma运行测试。只需将jquery.js作为第一项包

我有一个基于纯angular.js代码的项目。我们用jasmine创建unittest。但是现在我们需要获取一些第三方组件(Angular Bootstrap中的一些指令),它们内部也是纯Angular.js,但是为了测试这些组件,我们使用了一些jQuery代码和方法调用。现在很多第三方测试都失败了,比如
[object]没有方法“触发器”
之类的东西

所以我的问题是如何将jquery包含到我的测试中,以使第三方UnitTest有效。
我使用Karma运行测试。

只需将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
  });
};

秒,也许这不是第一次。让我试试。你在更改配置后重新启动karma吗?您可能需要再次检查jQuery的路径是否正确。应该行的。谢谢你的帮助。是的,这就是工作。顺便问一下,为什么它应该是第一位呢?有几个原因:1。为什么不呢?jQuery没有任何依赖项,但其他脚本依赖于它。2.如果Angular在加载时找不到jQuery,它将使用它的jQuery lite,而不是增强jQuery功能。另外,请确保将jQuery放在第一位。它按顺序加载脚本-顺序在这里很重要。我一直在想为什么我的.find()选择器不起作用。