我有一个双滑块,我想测试它是否可操作并返回正确的数据.滑块有一个min和max处理程序,它还有一些"我可以挂钩的断点".
我想要模拟的是
而我发现了如何触发touchStart和touchEnd事件.我对如何模拟拇指的移动毫无头绪
browser.executeScript('angular.element(arguments[0]).triggerHandler("touchstart");', filterHandler);
// <--- move event????
browser.executeScript('angular.element(arguments[0]).triggerHandler("touchend");', filterHandler);
Run Code Online (Sandbox Code Playgroud)
PS这个问题的范围是一个集成测试,它测试当用户与双滑块指令交互时应用程序发生了什么是理想的结果.
我正在尝试测试我正在编写的新指令.但是,我似乎无法在Karma/Jasmine中使用jQuery触发keydown事件.
以下是测试的简化版本:
'use strict';
describe('', function() {
var $compile;
var $scope;
beforeEach(inject(function(_$compile_, _$rootScope_) {
$compile = _$compile_;
$scope = _$rootScope_.$new();
}));
describe('Getting Trigger To Work', function() {
it('Should Trigger a KeyDown Event', function() {
var el = $compile('<form name="testing"><input id="field1" name="testfield" ng-model="result" type="text" ng-minlength="5" ng-maxlength="50"/></form>')($scope);
console.log(el);
var inputEl = el.find('input');
console.log(inputEl);
var e = $.Event('keydown');
e.which = 65;
inputEl.trigger(e);
});
});
});
Run Code Online (Sandbox Code Playgroud)
我的业力配置包括AngularJS和jQuery.这是部分:
//
files: [
'lib/angular.js',
'lib/angular-mocks.js',
'lib/jquery-1.10.2.min.js',
'test/**/*Spec.js'
],
Run Code Online (Sandbox Code Playgroud)
当我运行测试时,我得到一个错误,我的input元素没有触发器方法:
INFO [watcher]: Changed file "/Volumes/Macintosh HD/dev_libraries/val-on-timeout/test/valOnTimeoutSpec.js".
LOG: Object{0: …Run Code Online (Sandbox Code Playgroud)