当前位置: 首页 > 工具软件 > qunit-dom > 使用案例 >

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

童浩言
2023-12-01

模拟操作:

  • 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");    
});

  

 

转载于:https://www.cnblogs.com/jinkspeng/p/4026457.html

 类似资料: