jquery.simulate.js和jQuery事件方法之间的区别?

时间:2010-12-12 18:51:21

标签: jquery unit-testing jquery-ui testing

jQuery UI源库包含用于模拟鼠标和键盘事件的jquery.simulate.js文件。在测试jQuery UI时,使用该模拟函数而不是使用jQuery event methods有什么好处?

1 个答案:

答案 0 :(得分:4)

jquery.simulate.js文件仅用于模拟事件 - 它不像jQuery那样提供完整的事件管理系统。这意味着,它会创建一个假的事件对象,然后将此事件发送到DOM。这可以与jQuery的.trigger()方法进行比较,后者执行类似的操作。

但是,事件对象上有许多属性可以修改,包括它是否应该冒泡,源元素是什么,是否按下任何特殊键,鼠标单击的确切x和y位置,等等。当我们调用.trigger()时,jQuery通过将必要的属性设置为某些默认值来隐藏此信息。另一方面,jquery.simulate.js是为测试而设计的(请注意该文件位于“jquery-ui / tests /”下)。出于测试目的,您需要对事件对象进行更细粒度的控制,以更好地模仿真实的用户交互。

长话短说,除非您正在进行测试,否则很可能根本不需要jquery.simulate.js。即使您想要它提供的某些功能,也要注意该文件不是jquery-ui库的正式组成部分。