首页 > 解决方案 > 如何对使用 Jquery 的 Angular 6 组件进行单元测试

问题描述

import $ from "jquery";
let newobject = $.extend(true, {}, object);

无法读取未定义的属性“扩展”

在我的 Angular 6 应用程序中,当我执行 ng test 时,这些代码行会在我的组件中执行。我找不到如何让测试框架知道它在哪里可以找到库。我正在使用业力和茉莉花。

我已经阅读了 angular.io 文档,尝试了打字,尝试通过 angular.json 文件引用 jquery,尝试使用 karma-jasmine-jquery 库修改 karma.conf.js 文件,还尝试了 @types/jquery。我也考虑过摆脱这种克隆对象的方式,但因为这在其他情况下可能对其他人有帮助,所以我敢问。

我正在使用安装在 node_modules 中的 jquery 3.3.1。

标签: jqueryangulartypescriptkarma-jasmineangular6

解决方案


我按照 cgTag 提到的帖子中的说明进行操作,但对我并没有太大帮助,诀窍是替换

import $ from "jquery";

为了

var $ = require('jquery');

我希望它可以帮助别人。不要忘记仍然Import jquery to karma 配置


推荐阅读