Angularjs 如何对绑定到scroll的angular指令进行单元测试
我有一个angular指令,返回scroll事件中元素的scroll top属性,但是在单元测试中遇到了一些问题 如何模拟滚动事件以更改scrollTop属性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
.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中测试的