下一站永远 发表于 2012-12-22 21:33:05

QUnit系列 -

<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 );});}
页: [1]
查看完整版本: QUnit系列 -