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

标签 jquery unit-testing jquery-ui testing

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

最佳答案

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

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

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

关于jquery - jquery.simulate.js 和 jQuery 事件方法之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4423347/

相关文章:

jquery - Bootstrap 工具提示显示在页面左上角

javascript - 启用/禁用 jquery ui 组件

unit-testing - 如何在单元测试中模拟 springSecurityService

unit-testing - SonarQube:查看失败测试的详细信息

javascript - 防止 ui-ressized 句柄自动触发溢出滚动条

javascript - 如何正确覆盖 jQuery UI 主题应用的 CSS?

javascript - 如何使用 Ajax 填充我的 Highcharts 。

javascript - append(string/ref_jquery_obj/jquery_obj) 中的 jQuery 差异

javascript - 如何限制在 html 选择框中选择的选项?

vb.net - 单元测试具体类