Ich konnte process.env
in meinen Unit-Tests richtig geklubbt werden, indem ich es klonte und in einer Teardown-Methode wiederherstellte.
Beispiel mit Mokka
const env = Object.assign({}, process.env);
after(() => {
process.env = env;
});
...
it('my test', ()=> {
process.env.NODE_ENV = 'blah'
})
Beachten Sie, dass dies nur funktioniert, wenn process.env nur in der von Ihnen getesteten Funktion gelesen wird. Wenn der zu testende Code beispielsweise die Variable liest und in einem Abschluss verwendet, funktioniert dies nicht. Sie machen wahrscheinlich die zwischengespeicherte Anforderung ungültig, um dies ordnungsgemäß zu testen.
Zum Beispiel wird die Umgebung nicht wie folgt blockiert:
const nodeEnv = process.env.NODE_ENV;
const fnToTest = () => {
nodeEnv ...
}