如何在react-testing-library的userEvent中使用数值类型?
userEvent.type 不能直接传入数值类型的原因及解决办法
- userEvent.type 的第二个参数必须是字符串类型,这是它的类型约束决定的,直接传数值1000自然会触发类型错误。
- 原因:userEvent 是模拟真实用户的输入行为,用户在输入框中输入的是字符序列而非数值,所以它要求输入内容必须是字符串。相比 fireEvent,userEvent 对交互的模拟更贴近真实场景,因此类型校验更严格。
解决办法很简单,把数值转换成字符串即可:
await userEvent.type( screen.getByRole('textbox', { name: 'pay' }), '1000' // 改为字符串格式 );
如果是动态生成的数值,可以用 String() 方法转换:
const payAmount = 1000; await userEvent.type( screen.getByRole('textbox', { name: 'pay' }), String(payAmount) );
内容的提问来源于stack exchange,提问作者ezdar
相关产品推荐
相关产品推荐

