当前位置:嗨网首页>书籍在线阅读

20-解决方案

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

18.5.2 解决方案

可以用jQuery的 trigger() 方法触发事件并测试预期行为的发生。如果你不希望触发浏览器原生事件,可以使用 triggerHandler() 执行绑定的事件处理程序。这在测试链接上的单击事件时有用,因为 trigger() 会导致浏览器打开另一个位置,这是测试中不希望出现的。

假定要测试一个简单的击键记录程序:

var keylogger = {
   log: null,
   init: function() {
     keylogger.log = [];
     $(document).unbind("keydown").keydown(function(event) {
        keylogger.log.push(event.keyCode);
     });
   }
};

可以人工触发按键事件,查看记录程序是否正常工作:

test("basic keylogger behavior", function() {
   // 初始化
   keylogger.init();
   //触发事件
   var event = $.Event("keydown");
   event.keyCode = 9;
   $(document).trigger(event);
   // 验证预期行为
   same(keylogger.log.length, 1, "a key was logged");
   same(keylogger.log[0], 9, "correct key was logged");
});