Udało mi process.env
się zostać poprawnie usuniętym w moich testach jednostkowych, klonując go i przywracając metodą porzucenia.
Przykład z użyciem Mocha
const env = Object.assign({}, process.env);
after(() => {
process.env = env;
});
...
it('my test', ()=> {
process.env.NODE_ENV = 'blah'
})
Należy pamiętać, że zadziała to tylko wtedy, gdy plik process.env jest odczytywany tylko w testowanej funkcji. Na przykład, jeśli testowany kod odczytuje zmienną i używa jej w zamknięciu, nie zadziała. Prawdopodobnie unieważniłeś buforowane żądanie, aby to poprawnie przetestować.
Na przykład następujące elementy nie będą miały kodu pośredniego env:
const nodeEnv = process.env.NODE_ENV;
const fnToTest = () => {
nodeEnv ...
}