如何确定JEST是否正在运行代码?

时间:2018-06-20 05:12:32

标签: javascript firebase react-native mocking jestjs

我正在为我的本机项目创建一个JS测试。我专门使用firebase来进行本机反应,如果JS正在运行我的类的代码,我想在其中用模拟firebase实例替换firebase实例。

例如,我具有如下的类设置。

www/img/logo.png

我想检查一下jest是否在运行环境中,然后用适当的模拟类替换导入行。

3 个答案:

答案 0 :(得分:8)

jest设置了一个名为JEST_WORKER_ID的环境变量,因此您检查是否设置了该变量:

function areWeTestingWithJest() {
    return process.env.JEST_WORKER_ID !== undefined;
}

我还看到,如果未设置NODE_ENV,则jest CLI会将其设置为值“ test”。这可能是另一种检查方式。

答案 1 :(得分:7)

我通常在我的shell上全局设置NODE_ENV=development。这对我有用:

typeof jest !== 'undefined'

(请注意,global.jest'jest' in global无效,因为这似乎不是全局变量,只是所有模块上都可以使用的值,就像节点的require__filename

答案 2 :(得分:0)

您可以将参数添加到global中,例如global.isJest并检查前端是否已定义