Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.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
Angularjs 如何对绑定到scroll的angular指令进行单元测试_Angularjs_Unit Testing_Karma Jasmine - Fatal编程技术网

Angularjs 如何对绑定到scroll的angular指令进行单元测试

Angularjs 如何对绑定到scroll的angular指令进行单元测试,angularjs,unit-testing,karma-jasmine,Angularjs,Unit Testing,Karma Jasmine,我有一个angular指令,返回scroll事件中元素的scroll top属性,但是在单元测试中遇到了一些问题 如何模拟滚动事件以更改scrollTop属性 angular .module('app') .directive('scrollTop', scrollTop); /** @ngInject */ function scrollTop() { return { restrict: 'A', scope: { scroll: '=scrollT

我有一个angular指令,返回scroll事件中元素的scroll top属性,但是在单元测试中遇到了一些问题

如何模拟滚动事件以更改scrollTop属性

angular
  .module('app')
  .directive('scrollTop', scrollTop);

/** @ngInject */
function scrollTop() {
  return {
    restrict: 'A',
    scope: {
      scroll: '=scrollTop'
    },
    link: function (scope, element) {
      element.bind('scroll', function () {
        scope.scroll = element[0].scrollTop;
      });
    }
  };
}

describe('tests for scroll top directive', function () {
  beforeEach(module('app'));

  it('should make the scrollTop of the element available', angular.mock.inject(function ($rootScope, $compile) {
    $rootScope.scroll = 0;
    var element = $compile('<div style="height: 1px;width: 5px;" scroll-top="scroll"></div>')($rootScope);
    $rootScope.$digest();
    element.css({scrollTop: 100})
    element.triggerHandler('scroll');
    expect($rootScope.scroll).toEqual(100);
  }));
});
angular
.module('应用程序')
.指令('scrollTop',scrollTop);
/**@ngInject*/
函数scrollTop(){
返回{
限制:“A”,
范围:{
滚动:'=scrollTop'
},
链接:功能(范围、元素){
元素绑定('scroll',函数(){
scope.scroll=元素[0]。scrollTop;
});
}
};
}
描述('滚动顶部指令测试',功能(){
在每个(模块(“应用”)之前;
它('应该使元素的滚动顶部可用'),angular.mock.inject(函数($rootScope,$compile){
$rootScope.scroll=0;
var元素=$compile(“”)($rootScope);
$rootScope.$digest();
css({scrollTop:100})
元素triggerHandler('scroll');
expect($rootScope.scroll).toEqual(100);
}));
});

我担心一些与滚动相关的东西可能在phantomJS浏览器上不起作用是的,我应该加上这是在phantomJS中测试的