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