ree*_*rix 34 frontend unit-testing reactjs enzyme
我试图模拟一个keyDown
事件,专门用于输入,keyCode: 13
.我已经尝试了许多不同的方法来做到这一点,但它们都没有奏效.我也看过网上,似乎这个功能要么是错误的,要么在当前版本的Enzyme中不起作用.有没有人知道这个功能是否有效,如果有的话,模拟输入或其他类型的关键事件的正确语法是什么?谢谢!
这就是我目前所拥有的,它不起作用:
const input = wrapper.find('input');
input.simulate('keyDown', {keyCode: 13});
Run Code Online (Sandbox Code Playgroud)
我目前的酶版本是2.4.1
ale*_*ree 46
在'Enter'的情况下,我使用了一个键而不是使用keyCode,使用mount
:
wrapper.find('input').simulate('keypress', {key: 'Enter'})
Run Code Online (Sandbox Code Playgroud)
Bla*_*ack 15
不推荐使用模拟解决方案
酶模拟应该在版本 4 中删除。主要维护者建议直接调用 prop 函数。一种解决方案是直接测试调用这些 props 是否正确;或者您可以模拟实例方法,测试 prop 函数是否调用它们并对实例方法进行单元测试。
例如,您可以按下键
wrapper.find('input').prop('onKeyDown')({ key: 'Enter' })
Run Code Online (Sandbox Code Playgroud)
或者
wrapper.find('input').props().onKeyDown({ key: 'Enter' })
Run Code Online (Sandbox Code Playgroud)
弃用信息:https : //github.com/airbnb/enzyme/issues/2173
小智 14
我正在使用“浅”挂载(带有Jest 23.6.0的酶3.7.0)。这项工作对我来说:
const input = wrapper.find('input');
input.simulate('change', { target: { value: 'abcdefg'} });
input.simulate('keydown', { keyCode: 13 });
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
28519 次 |
最近记录: |