konnte ich process.env
erhalten, indem das Klonen es richtig in meinen Unit-Tests werden stubed und in einem Teardown-Verfahren sie wiederherzustellen.
Beispiel Mokka mit
const env = Object.assign({}, process.env);
after(() => {
process.env = env;
});
...
it('my test',()=> {
process.env.NODE_ENV = 'blah'
})
Denken Sie daran, ist dies nur funktioniert, wenn die process.env nur gelesen wird Ihnen in der Funktion testen. Wenn beispielsweise der Code, den Sie testen, die Variable liest und in einem Closure verwendet, funktioniert sie nicht. Wahrscheinlich haben Sie die zwischengespeicherte Anforderung für ungültig erklärt, um dies richtig zu testen.
zum Beispiel die folgenden nicht die env stubbed:
const nodeEnv = process.env.NODE_ENV;
const fnToTest =() => {
nodeEnv ...
}
Können Sie erklären, warum Sie Umgebung wollen würde Stummel Vars? Machst du das auf einem Unix-ähnlichen Betriebssystem oder Windows? – slebetman
@slebetman Es ist üblich, sich bei der Konfiguration auf Umgebungsvariablen zu verlassen, z. B. einen API-Schlüssel für einen Dienst, auf den Sie angewiesen sind. Siehe http://12factor.net/. –
@AndrewHomeyer: Ja, aber Sie ** stub ** sie nicht - Sie setzen sie richtig für den Test – slebetman