如何解决通过React Testing LibraryRTL触发react-ace onChange
在我的代码中,我拥有使用react-ace的组件。 在我的渲染函数中,我有以下行:
<CodeEditor onChange={onCodeChanged} value={code} />
回调函数:
const onCodeBodyChanged = (newCode) => {
// some code ...
dispatch(setResource({ newCode }));
}
我想通过RTL测试onCodeChanged
,所以我尝试在更改值时找到文本区域,但没有成功
(无效)测试示例:
const { container } = render(<ResourceEditorPanel />,createMockStore());
const ace = container.querySelectorAll('.ace_text-input');
fireEvent.change(ace,{ target: { value: 'someText' } });
await waitFor(() => {
expect(dispatch).toHaveBeenCalled();
});
问题是fireEvent.change(ace,{ target: { value: 'someText' } });
不会触发我的功能-onCodeChanged。
您知道我该如何测试吗?
解决方法
Ace 编辑器等待输入事件,因此您还需要触发类似 fireEvent(ace,new Event('input'))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。