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

Jus*_*der 3 javascript jestjs node-uuid

最近迁移mochajest,我遇到了一个问题.我的测试中有很多警告:

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

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

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

我希望有一种方法可以node-uuid全局模拟所有测试而不是单个文件?我已经完成了一堆搜索,并在我的设置文件中尝试了不同的技术,但无济于事.

fat*_*thy 10

您可以定义一个人工模拟[root]/__mocks__/node-uuid.js 地方[root]是在目录node_modules所在的目录:

module.exports = { v4: jest.fn(() => 1) }
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!这很有用 - 需要注意的一件重要事情是,如果你在config中设置了`rootDir`,那么`__mocks__`文件夹必须去那个位置的任何地方.我会赞成这个答案,但我还没有足够的代表...... (2认同)