【发布时间】:2023-03-31 11:24:01
【问题描述】:
我正在尝试模拟一个keyDown 事件,专门针对 Enter,keyCode: 13。我已经尝试了许多不同的方法来做到这一点,但它们都不起作用。我也在网上查看过,似乎这个功能在当前版本的 Enzyme 中要么有问题,要么不起作用。有谁确切地知道此功能是否有效,如果有效,模拟输入或其他类型的关键事件的正确语法是什么?谢谢!
这是我目前拥有的,但它不起作用:
const input = wrapper.find('input');
input.simulate('keyDown', {keyCode: 13});
我目前的 Enzyme 版本是 2.4.1
【问题讨论】:
-
应该可以。您使用的是
shallow还是mount? -
@ZekeDroid 是否有任何确定的方法来验证它是否正常工作?我对其是否正常工作的测试涉及检查是否创建了新组件,在这种情况下,这没有发生。此外,
sinon和chai在酶中的间谍实用程序都存在问题,因此我无法使用它们来验证用户事件。 -
我会在您的输入字段中添加一个
onChange事件并在每个事件中添加console.log。然后运行你的测试,看看你是否得到keyDown事件 -
这些可模拟事件记录在哪里? airbnb 文档只提到“点击”,而不是例如 keypress 或 keyDown [sic]。它们是从某个地方的 WebAPI 借来的吗?
-
这适用于使用 mount 的酶 3.1.0。事件名称是
keydown
标签: unit-testing reactjs frontend enzyme