gpt4 book ai didi

javascript - Jest + react 测试库 : Warning update was not wrapped in act()

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:08:39 24 4
gpt4 key购买 nike

我正在使用 react-testing-library 测试我的组件并且测试工作正常。我只是无法摆脱这个警告,fireEvent 应该包装在开箱即用的行为中,但我试图再次包装它但没有帮助。

这是我的测试用例。

it.only("should start file upload if file is added to the field", async () => {
jest.useFakeTimers();
const { getByTestId } = wrapper;
const file = new File(["filefilefile"], "videoFile.mxf");

const fileInput = getByTestId("drop-zone").querySelector(
"input[type='file']"
);

fireEvent.change(fileInput, { target: { files: [file] } });

act(() => {
jest.runAllTimers();
});

await wait(() => {
expect(
initialProps.uploadItemVideoFileConnect.calledWith(file, 123)
).toBe(true);
});
});

这里是警告

Warning: An update to UploadButtonGridComponent inside a test was not wrapped in act(...).

When testing, code that causes React state updates should be wrapped into act(...):

act(() => {
/* fire events that update state */
});
/* assert on the output */

最佳答案

该问题是由 Component 内部的许多更新引起的。

我也是这样,这就是我解决问题的方法。

await act( async () => {
fireEvent.change(fileInput, { target: { files: [file] } });
});

关于javascript - Jest + react 测试库 : Warning update was not wrapped in act(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55181009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com