我正在为我的本机项目创建一个JS测试。我专门使用firebase来进行本机反应,如果JS正在运行我的类的代码,我想在其中用模拟firebase实例替换firebase实例。
例如,我具有如下的类设置。
www/img/logo.png
我想检查一下jest是否在运行环境中,然后用适当的模拟类替换导入行。
答案 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并检查前端是否已定义