首页 > 代码库 > QUnit使用笔记-3测试用户操作

QUnit使用笔记-3测试用户操作

模拟操作:

  • elem.trigger(event);
  • elem.triggerHandler(event);
    • triggerHandler的不同:
      • 不会引起事件的默认行为
      • .trigger() 会操作 jQuery 对象匹配的所有元素,而 .triggerHandler() 只影响第一个匹配元素。
      • 由 .triggerHandler() 创建的事件不会在 DOM 树中冒泡。
      • 该方法的返回的是事件处理函数的返回值,而不是 jQuery 对象。
  • $.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测试用户操作