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

      

  • 相关阅读:
    深入浅出HTTP请求(转自http://www.cnblogs.com/yin-jingyu/archive/2011/08/01/2123548.html)
    IOS定位
    webView(简单的浏览器)
    Get&Post登录
    IOS多媒体
    IOS VFL屏幕自适应
    IOS中在自定义控件(非视图控制器)的视图跳转中 代理方法与代码块的比较
    单例设计的定义
    动画
    多线程
  • 原文地址:https://www.cnblogs.com/jinkspeng/p/4026457.html
Copyright © 2011-2022 走看看