如何在 React 测试库中全局设置 waitFor 选项?

How to set waitFor options globally in React Testing Library?

我正在查看 waitFor documentation,我想知道是否有任何方法可以全局配置它,例如在 jest.config 或用于启动测试套件的命令中?

我需要在每次测试中增加超时,这有点烦人。

您可以创建一个辅助函数,不是吗?


export function wrappedWaitFor(cb, opts = {}) {
  waitFor(cb, { ...opts, timeout: 10000 });
}

根据 the documentation,各种异步实用程序的超时配置选项是 asyncUtilTimeout:

asyncUtilTimeout

The global timeout value in milliseconds used by waitFor utilities. Defaults to 1000ms.

您可以使用 configure 函数进行配置,例如在 setupTests.js 文件中:

import { configure } from "@testing-library/react";

configure({ asyncUtilTimeout: 5000 });

添加到@jonrsharpe 的回答

您可以在 setupTests.js / setupTests.ts 文件中为 @testing-library/react & @testing-library/dom 配置异步方法的超时:

import { configure as configureReact } from "@testing-library/react";
import { configure as configureDom } from "@testing-library/dom";

configureReact({ asyncUtilTimeout: 5000 });
configureDom({ asyncUtilTimeout: 5000 });

但是如果您需要为任何其他 testing-library 包的异步方法配置它,那么需要为每个异步方法配置它,例如

waitFor(callback_func, { timeout: 5000 });

或按照@Baruch 的建议创建辅助函数