Jest: 如何全局模拟 node-uuid(或任何其他导入的模块)

10

最近从 mocha 迁移到 jest,但遇到了问题。我的测试中有很多警告:

[SECURITY] node-uuid: crypto not usable, falling back to insecure Math.random()

现在,将以下行添加到每个文件可以解决该问题,但仅适用于该特定测试文件:

jest.mock('node-uuid', () => ({ v4: jest.fn(() => 1) }));

我希望有一种方法来全局地模拟node-uuid,并应用于所有测试,而不是单独的文件?我做了很多搜索,并尝试了不同的技术在我的设置文件中,但都没有成功。

1个回答

24

您可以在[root]/__mocks__/node-uuid.js中定义一个手动模拟,其中[root]node_modules目录所在的目录:

module.exports = { v4: jest.fn(() => 1) }

4
谢谢!这个方法行得通。需要注意的一件重要的事情是,如果你在配置文件中设置了 rootDir,那么 __mocks__ 文件夹必须放在该位置。我想给这个答案点赞,但我还没有足够的声望... - Justin Schrader

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接