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]