Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.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
Angular Jest外部库使用要求(';jquery';),但返回未定义_Angular_Jestjs - Fatal编程技术网

Angular Jest外部库使用要求(';jquery';),但返回未定义

Angular Jest外部库使用要求(';jquery';),但返回未定义,angular,jestjs,Angular,Jestjs,你好 我使用Angular CLI测试Angular 4应用程序,该应用程序使用依赖于jQuery的 问题 问题是Materialize扩展了jQuery,为此它调用require('jQuery'),但当我使用Jest运行测试时,它返回undefined if(typeof(jQuery)==“未定义”){ var-jQuery; //检查require是否是已定义的函数。 if(类型(要求)==“功能”){ jQuery=$=require('jQuery'); //否则使用美元符号别名。

你好

我使用Angular CLI测试Angular 4应用程序,该应用程序使用依赖于jQuery的

问题

问题是Materialize扩展了jQuery,为此它调用
require('jQuery')
,但当我使用Jest运行测试时,它返回
undefined

if(typeof(jQuery)==“未定义”){
var-jQuery;
//检查require是否是已定义的函数。
if(类型(要求)==“功能”){
jQuery=$=require('jQuery');
//否则使用美元符号别名。
}否则{
jQuery=$;
}
}
我的实际设置

我在这样嘲笑jQuery

import*作为$from'jquery/dist/jquery';
defineProperty(窗口“$”,{value:$});
defineProperty(窗口,'jQuery',{value:$});
在模拟jQuery之后导入Materialize,如下所示

import'materializecss/dist/js/materialize';
我的期望

由于Materialize扩展了jQuery,并且应用程序组件正在使用扩展的方法,因此需要正确加载它(包括jQuery),以便测试不会失败


非常欢迎任何帮助,并提前感谢您的时间

我觉得自己很傻,但如果有人遇到同样的问题,对我来说,将Jest Preset Angular更新到v2.0.5,将Jest JUnit更新到v2.1.0解决了这个问题