如何在每次Jest测试运行之前运行一些配置

时间:2014-07-29 14:10:45

标签: unit-testing reactjs reactjs-flux jestjs

我正在为React应用程序编写测试,该应用程序使用Fluxxor来提供事件调度程序。做这项工作需要告诉Jest不要模拟一些内部使用的模块,并由Node本身提供。

这意味着我不能只将它们添加到unmockedModulePathPatterns配置密钥,而是必须使用这样的代码:

[ 'util', 'events' ].forEach(function (module) {
  jest.setMock(module, require.requireActual(module));
});

然而,我找不到任何有用的东西。我有一个setupEnvScriptFile,它设置了我在几乎所有测试中使用的几个全局变量,但jest对象似乎在该上下文中不可用,所以我不能只把嘲笑放在那里。

作为一个hacky权宜之计,我将上面的代码包装在一个函数中,我在测试Fluxxor存储的任何describe块的开头调用,但它远非理想。

3 个答案:

答案 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支持的解决方案。

https://gist.github.com/adjavaherian/a15ef0461e65d58aacd2

相关问题