首页 > 代码库 > QUnit使用笔记-3测试用户操作
QUnit使用笔记-3测试用户操作
模拟操作:
- elem.trigger(event);
- elem.triggerHandler(event);
- triggerHandler的不同:
- 不会引起事件的默认行为
- .trigger() 会操作 jQuery 对象匹配的所有元素,而 .triggerHandler() 只影响第一个匹配元素。
- 由 .triggerHandler() 创建的事件不会在 DOM 树中冒泡。
- 该方法的返回的是事件处理函数的返回值,而不是 jQuery 对象。
- triggerHandler的不同:
- $.Event(event); 如果事件需要依赖特定的操作其他操作,则要使用Event,并设置属性:
event = $.Event("keydown"); //keydown event; event.keyCode = 9; $doc.trigger(event);//can use triggerHandler() insteadof trigger;
例子:
function keyLogger(target) { if(!(this instanceof keyLogger)) { return new keyLogger(target); }; this.target = target; this.log = []; var self = this; this.target.off("keydown").on("keydown", function(event) { self.log.push(event.keyCode); });}QUnit.test("keylogger api behavior", function(assert) { var event, $doc = $(document), keys = keyLogger($doc); //trigger event event = $.Event("keydown"); //keydown event; event.keyCode = 9; $doc.trigger(event);//can use triggerHandler() insteadof trigger; //verify expected behavior assert.equal(keys.log.length,1,"a key was logged"); assert.equal(keys.log[0],9,"correct key was logged"); });
QUnit使用笔记-3测试用户操作
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。