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

      

  • 相关阅读:
    聪明的质检员 (二分)
    分巧克力(二分)
    产生冠军 HDU
    Legal or Not HDU
    确定比赛名次 HDU
    最短路径问题 HDU
    dijkstra算法为什么不能有负边?
    最短路 HDU
    dijkstra算法 模板
    Floyd算法模板--详解
  • 原文地址:https://www.cnblogs.com/jinkspeng/p/4026457.html
Copyright © 2020-2023  润新知