javascript - 在 textarea 输入上的 Jest 测试写入
问题描述
我正在尝试使用 Jest 将一些模拟字符串写入文本区域,然后按 Enter,但无论出于何种原因它都不起作用。到目前为止我的代码:
test('Should add a message', () => {
const element = wrapper.find('textarea');
element.instance().value = 'abc';
element.simulate('keypress', { key: 'Enter' });
const newWrapper = wrapper.find('user');
expect(newWrapper.length).toBe(1);
});
我的组件:
<textarea
onKeyUp={sendMessage}
placeholder='Type your message here and press enter to send...'
cols='30'
rows='5'
></textarea>
只是为了清楚 textarea 在以下测试通过时肯定存在:
test('Should have a textarea', () => {
const element = wrapper.find('textarea');
expect(element.length).toBe(1);
});
解决方案
在您的情况下,您正在寻找的是'keyUp'
,而不是'keypress'
。而不是key
,使用keyCode
. keyCode
对于Enter
是13
。_
像这样:
element.simulate('keyUp', { keyCode: 13 });
推荐阅读
- vue.js - 在 vue js 上观看路由对象
- python - 我无法使用 discord.py 向我的不和谐机器人添加命令
- javascript - Three.js:将 6 Cube Panorama 设置为任意一侧(前、后、左等)
- javascript - 在 IOS 中隐藏 CSS 的输入字段闪烁光标
- node-red - 使用 Node-RED v.0.18.7 发送命令
- javascript - 从客户端和客户端读取超过 javascript 中单个字符串最大大小的文本文件
- angular - 我正在建立一个 Angular 5 网站。我有一个从 API 中提取的大图片库
- python - 从应用程序中的两个不同页面访问一个烧瓶路线
- ios - 如何在iphone中制作沙盒环境
- windows - 这是调用套接字发送/接收的正确方法吗