六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 33|回复: 0

QUnit系列 -

[复制链接]

升级  9.6%

394

主题

394

主题

394

主题

探花

Rank: 6Rank: 6

积分
1192
 楼主| 发表于 2012-12-22 21:33:07 | 显示全部楼层 |阅读模式
<div id="cnblogs_post_body">  测试用户操作

  问题

  那些依赖于用户操作的代码,不能通过执行函数来测试。通常元素的事件使用异步函数,例如click,这些需要模拟。
  解决方案

   你可以使用jQuery的 trigger()方法来触发事件,然后测试预期的行为。如果你不想浏览器事件被触发,你可以使用triggerHandler()来执行事件相关方法。这对于测试链接的click事件是有帮助的,因为trigger()可能会使浏览器改变地址栏信息,这恐怕不是测试过程中想要发生的。假设我们有一个简单的KeyLogger需要测试:
<div class="cnblogs_code">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 );  });}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表