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

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

问题描述:

最近从mocha迁移到jest,我遇到了一个问题。我有很多的警告在我的测试:Jest:如何全局模拟node-uuid(或任何其他导入的模块)

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

现在,添加以下行到每个文件修复该问题,但针对特定测试文件:

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

我希望有一种方法来模拟node-uuid全球所有测试而不是单个文件?我做了一堆搜索,并在我的设置文件中尝试了不同的技术,但无济于事。

您可以定义在[root]/__mocks__/node-uuid.js 其中[root]一个manual-mock是在node_modules目录所在的目录:

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

谢谢!这有效 - 需要注意的一件重要的事情是,如果你在配置中设置了'rootDir',那么'__mocks__'文件夹必须到达该位置的任何位置。我会upvote这个答案,但我没有足够的代表呢... –