我正在为React应用编写测试,其中使用了Fluxxor提供事件分发器。这需要告诉Jest不要模拟一些内部使用的模块,这些模块由Node自身提供。
这意味着我不能只将它们添加到unmockedModulePathPatterns
配置键中,而是必须使用像这样的代码:
[ 'util', 'events' ].forEach(function (module) {
jest.setMock(module, require.requireActual(module));
});
然而,我找不到任何有用的地方放置它。我有一个名为
setupEnvScriptFile
的文件,它设置了一些全局变量,我几乎在所有测试中都要使用它们,但是jest
对象在这种情况下似乎不可用,因此我不能在那里设置模拟对象。作为一个临时的折中措施,我将上述代码包装在一个函数中,在测试Fluxxor存储的任何
describe
块的开头调用它,但这远非理想。
unmockedModulePathPatterns
? - Felix Klingutil
/usr/lib/node/util
/usr/lib/node
在每种情况下,“util”模块仍然被模拟。 - Jon Woodutil
本身可能没有被模拟,但它加载其他被模拟的模块吗? - Felix Klingutil
本身,因为当我使用require.requireActual
时,我得到了预期的util
对象,如果我不这样做,那么我就会得到一个 Jest 模拟。 - Jon Wood