Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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动画计时器?_Javascript_Jquery_Angularjs_Unit Testing_Jasmine - Fatal编程技术网

Javascript 如何在角度单元测试中关闭jquery动画计时器?

Javascript 如何在角度单元测试中关闭jquery动画计时器?,javascript,jquery,angularjs,unit-testing,jasmine,Javascript,Jquery,Angularjs,Unit Testing,Jasmine,我正在测试一个指令,该指令在元素在100毫秒内消失后将其从页面中删除。如果我使用$timeout,我可以通过测试,但我不想让测试运行程序在等待动画完成时慢下来。我发现了这一点,它描述了如何在jasmine测试中“关闭”jQueryFX,但如何将jquery变量注入到测试中 以下是指令函数代码段: if(curtain.length > 0) { curtain.fadeOut(100, function (){ curtain.remove(); }); } 下面是我的$

我正在测试一个指令,该指令在元素在100毫秒内消失后将其从页面中删除。如果我使用$timeout,我可以通过测试,但我不想让测试运行程序在等待动画完成时慢下来。我发现了这一点,它描述了如何在jasmine测试中“关闭”jQueryFX,但如何将jquery变量注入到测试中

以下是指令函数代码段:

if(curtain.length > 0) {
  curtain.fadeOut(100, function (){
    curtain.remove();
  });
}
下面是我的$timeout功能测试:

it('should remove the overlay (curtain) from the page', function (){
  var config = {
    start: false,
    steps: []
  };

  //Initialize 
  var cmf = factory.getInstance(config);

  //add curtain
  cmf.curtain();
  var curtain1 = angular.element('body').find('#ng-curtain');
  expect(curtain1.length).toBe(1);

  //remove curtain
  cmf.curtain(true);
  var curtain2 = angular.element('body').find('#ng-curtain');
  $timeout(function (){
    expect(curtain2.length).toBe(0);
  }, 110);
});

我想你不必注射。如果您将jquery脚本与jasmine一起包含,那么它将在全局范围内。在您的原始代码中是否注入了jquery?当使用angular.element(选择器)时,jquery的函数是可用的,但如果我尝试记录jquery的值,它是未定义的。您是否将jquery脚本与jasmine脚本一起包括进来?很抱歉定义了jquery,但由于jshint的原因,在使用jquery变量时我无法运行规范。但是我找到了解决方案:使用jshint的/*global jQuery*/标志来知道jQuery在全局范围内,然后jQuery.fx.off=true;一切正常。感谢您对本PSL的帮助