如何异步使用 jest.each

msp*_*sen 6 node.js async-await jestjs

我在将文件名异步加载到 jest.each 时遇到问题。

我的代码:

let files: string[][]

function getFilesWorking() {
  files = [["test1"], ["test2"]]
}

async function getFilesAsync() {
  files = await Promise.resolve([["test1"], ["test2"]])
}

beforeAll(() => {
  console.log("before")
})

describe.only("Name of the group", () => {
  getFilesAsync()
  test.each(files)("runs", f => {})
})
Run Code Online (Sandbox Code Playgroud)

beforeAll 在每次测试之前执行,但不是在 test.each 初始化之前执行,所以我最终得到 undefined。

如何在使用 test.each 之前加载文件?

Ten*_*eff 1

您可以将回调async传递给其中beforeAllawait getFilesAsync在其中传递

beforeAll(async () => {
  await getFilesAsync();
})
Run Code Online (Sandbox Code Playgroud)