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

      

  • 相关阅读:
    DHCP Option 60 的理解
    几种开源分词工具的比較
    推荐交互设计师阅读的一本书
    iOS IAP教程
    艰苦的RAW格式数据恢复之旅
    BestCoder Round #11 (Div. 2) 前三题题解
    罗马数字
    mysql 加入列,改动列,删除列。
    杂项:ASP.NET Web API
    杂项:Web API
  • 原文地址:https://www.cnblogs.com/jinkspeng/p/4026457.html
Copyright © 2011-2022 走看看