Javascript 如何将jquery添加到jasmine/angularjs单元测试
我有一个基于纯angular.js代码的项目。我们用jasmine创建unittest。但是现在我们需要获取一些第三方组件(Angular Bootstrap中的一些指令),它们内部也是纯Angular.js,但是为了测试这些组件,我们使用了一些jQuery代码和方法调用。现在很多第三方测试都失败了,比如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作为第一项包
[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()选择器不起作用。