Mat*_*y F 6 javascript tdd unit-testing jasmine
我发现使用jQuery或本机元素触发器函数模拟实际用户事件越来越困难.例如,如果您有文本输入并且不希望用户能够添加字符,则可以e.preventDefault()使用事件上的jQuery规范化事件对象进行调用keydown.但是,无法以编程方式验证此测试方案.
即使没有调用,以下测试也会通过,preventDefault因为jQuery keydown触发器不是"真实"事件.
input.val('test').trigger(jQuery.Event({
which: 68
});
expect(input).toHaveValue('test');
Run Code Online (Sandbox Code Playgroud)
如果没有正确的代码,此测试应该失败,因为输入的值应为'testd'(68是'd'的字符代码).
有没有人知道任何方法或库来模拟真实的浏览器UI事件?
模拟真实事件相当复杂。您必须首先确定您需要哪种类型的事件并使用 来创建它document.createEvent。然后调用 differentinit*Event来初始化事件对象。最后,使用element.dispatchEvent将事件分派到目标对象。
| 归档时间: |
|
| 查看次数: |
7546 次 |
| 最近记录: |