我正在为React应用程序编写测试,该应用程序使用Fluxxor来提供事件调度程序。做这项工作需要告诉Jest不要模拟一些内部使用的模块,并由Node本身提供。
这意味着我不能只将它们添加到unmockedModulePathPatterns
配置密钥,而是必须使用这样的代码:
[ 'util', 'events' ].forEach(function (module) {
jest.setMock(module, require.requireActual(module));
});
然而,我找不到任何有用的东西。我有一个setupEnvScriptFile
,它设置了我在几乎所有测试中使用的几个全局变量,但jest
对象似乎在该上下文中不可用,所以我不能只把嘲笑放在那里。
作为一个hacky权宜之计,我将上面的代码包装在一个函数中,我在测试Fluxxor存储的任何describe
块的开头调用,但它远非理想。
答案 0 :(得分:2)
你试过config.setupTestFrameworkScriptFile吗?根据文档,似乎它是修补api的正确位置。
答案 1 :(得分:0)
似乎至少在目前,答案是&#34;在这种情况下你可以&#34;,但是为了支持它而需要做出的两个变化存在问题。< / p>
https://github.com/facebook/jest/issues/106 https://github.com/facebook/jest/issues/107
答案 2 :(得分:0)
FWIW,这是我们用来为我们的测试规范添加Fluxxor和React-Router支持的解决方案。