在我的代码中,我有使用 react-ace 的组件。在我的渲染函数中,我有这一行:
<CodeEditor onChange={onCodeChanged} value={code} />
Run Code Online (Sandbox Code Playgroud)
回调函数:
const onCodeBodyChanged = (newCode) => {
// some code ...
dispatch(setResource({ newCode }));
}
Run Code Online (Sandbox Code Playgroud)
我想onCodeChanged通过 RTL进行测试,所以我试图找到更改值的文本区域,但没有任何成功
(不工作)测试的例子:
const { container } = render(<ResourceEditorPanel />, createMockStore());
const ace = container.querySelectorAll('.ace_text-input');
fireEvent.change(ace, { target: { value: 'someText' } });
await waitFor(() => {
expect(dispatch).toHaveBeenCalled();
});
Run Code Online (Sandbox Code Playgroud)
问题是fireEvent.change(ace, { target: { value: 'someText' } });不会触发我的功能 - onCodeChanged。
你知道我该如何测试吗?