我遇到了一個問題,我導(dǎo)入的env變量在函數(shù)范圍之外不可用,我想知道這是有意的設(shè)計還是我做錯了什么例如我的設(shè)置如下所示/src/index.test.js//require configconst config = require('../config.json');const myFunc = require('./index.js');beforeEach(async () =>{ //set env vars process.env = Object.assign(process.env, config);})test('sample', async () =>{ //call function await myFunc(); expect(somethingMeaninful).toBeCalledTimes(1);})然后我的實(shí)際代碼如下所示src/index.jsconst myVar = process.env.myVarconsole.log(process.env.myVar) //<= will be undefinedasync function myFunc(){ console.log(process.env.myVar) //<= will show my value from config.json file return somethingMeaninful();}exports.myFunc = myFunc();因此,由于myVar是在函數(shù)外部聲明的,因此它是未定義的。我嘗試在 process.env 上作為一個整體在我的 func 內(nèi)部和外部執(zhí)行 console.log() ,并且在它外部將具有所有默認(rèn)值,但在它內(nèi)部也將具有默認(rèn)值 + 我的配置值。真的很困惑如何以及為什么會發(fā)生這種情況。當(dāng)我正常運(yùn)行代碼時,這些變量不是未定義的,但在測試期間是未定義的......這個鏈接在這里也提到了這個問題以及 github vue測試問題
Jest 測試期間 Process.env 變量在函數(shù)外部不可用
交互式愛情
2023-09-14 17:55:04