zoukankan      html  css  js  c++  java
  • 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");    
    });
    

      

  • 相关阅读:
    SQL Server 实现Split函数
    15.java设计模式之访问者模式
    14.java设计模式之命令模式
    13.java设计模式之模板模式
    12.java设计模式之代理模式
    11.java设计模式之享元模式
    10.java设计模式之外观模式
    9.java设计模式之组合模式
    8.java设计模式之装饰者模式
    7.java设计模式之桥接模式
  • 原文地址:https://www.cnblogs.com/jinkspeng/p/4026457.html
Copyright © 2011-2022 走看看