gpt4 book ai didi

node.js - node + ts-jest + ESM,jest.mock 什么都不做

转载 作者:行者123 更新时间:2023-12-05 01:53:50 24 4
gpt4 key购买 nike

我在 nodejs 上使用带有 ESM 导入的 ts-jest
问题是我的 jest.mock 不工作,它不是模拟。

import { jest } from "@jest/globals";

jest.mock("./helpers"); // I tried before or after import
import { fn } from "./helpers";


describe("SimpleTest", () => {
it("should work", () => {
console.log(fn); // => defined
console.log(fn.mockReturnValue); // => /!\ UNDEFINED, fn is not a jest mock.
});
});

我的 Jest 配置:

export default {
preset: "ts-jest/presets/default-esm",
extensionsToTreatAsEsm: [".ts"],
globals: {
"ts-jest": {
useESM: true,
},
},
}

我使用的命令:
node --experimental-vm-modules --experimental-specifier-resolution=node $(yarn bin jest)

我正在使用 Node v16.13.2 和 ts-jest 27.1.3

最佳答案

jest.mock 适用于 CJS,但不适用于 ESM。

有一个 jest.unstable_mockModule 和一个开放的 PR 可以将它变成一个稳定的 API,但它处于不确定状态(Jest 作者失去了动力)。

更多详情:

问题中的一些有值(value)的评论可能会帮助您找到部分解决方案。

它对我不起作用。我放弃了它,完全走了另一条路。

关于node.js - node + ts-jest + ESM,jest.mock 什么都不做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70999696/

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